text:
THE SWISS FOOTBALL ASSOCIATION (SFA)
The Swiss Football Association (SFV) is the umbrella organization for national football. It was founded in 1895 and in 1904 was one of the seven national associations that established the world football association FIFA. Today the SFV is one of the most important sports associations in the country. It's fair to say that Carl F. Bucherer (founded in 1888) and the SFV grew up together.
Official timekeeper of the Swiss National Football Teams
The cooperation with the Swiss Football Association (SFA) originates from the deep connection the Swiss watch manufacturer feels to its own roots. Carl F. Bucherer was founded in 1888 in Lucerne, the heart of Switzerland. Until this very day, the Swiss watch brand "Made of Lucerne" is coined and inspired by the cosmopolitan spirit of the city and its unique adjacent environment. As is true for football, everything in watchmaking revolves around time and interaction. The individual components in a movement need to intertwine perfectly to come through as a whole.
"The team really is a bit like a fine watch: every component – no matter how small – plays a critical role in the overall performance. Just as every member of the team, including those behind the scenes, contributes to its success, a watch depends on every tiny part."
- Sascha Moeri, CEO at Carl F. Bucherer
The Men's Swiss National Football Team
The Women's Swiss National Football Team
The Men's U21 Swiss National Football Team
Discover more about the Swiss National Football Teams (SFA)


This suite is derived from the incidental music Ibert wrote for a 1929 drama. The suite dates from 1930.
Ibert 'Escales' "Ports of Call"
(A KAL') Composed in 1922, following a trip to Rome and Mediterranean ports. It is a musical travelog inspired by his Mediterranean cruise to three very different ports.
Composed in 1906 but not Published until 1953 a year before Ives death this piece ponders the perennial question of existence with agitation of various orchestral sections until, unanswered, the orchestra stops.


Plot: A grizzled and stoic snow plow driver sets out for revenge after his son is murdered by a local drug lord. In doing so he causes wider chaos among organised crime families.
Review: This movie is the latest example of one of Hollywood's more perplexing habits, that being remakes of foreign language film whose sole purpose is to show it without subtitles. In this case they recruited the original director Moland to make the same movie he made a few years ago but in English. If you're going to remake a movie, at least get another director on board. Then we get two takes on the material.
Oh, and they changed the name to something far less interesting. In Order of Disappearance is a fantastic title, Cold Pursuit sounds like a straight to video actioner starring Steven Seagal.
The movie opens with Nels Coxman (Neeson), renamed from the original's Nils Dickman, exchanging two lines with his son before they go their seperate ways. His son is then abducted and murdered by gangsters with his demise being disguised as a drug overdose. Coxman refuses to believe this story and sets out on a path of revenge. His actions quickly draw the attention of drug lord 'Viking" (Bateman), his rival gang lead by White Bull (Jackson), police officer Dash (Rossum) and others. Things quickly descend into a violent mess.
A recurring problem with most mainstream offerings this past year or two is the lack of a clear tone. After seeing the different trailers we weren't sure what to expect from the movie. Is it a black comedy, a farce or a revenge thriller? Maybe a combination of the three, similar to what the Coen Brothers have done in the past. Having watched the movie I'm still not sure what the intended tone was.
The film needs to lean more into the one tone or the other because when instances of black humour do come up they feel awkward. Things remain pretty dry during the first act where the main characters are set up, so when we have to wait painfully long for the morgue technician to raise the gurney holding the body up to waist height we're not sure how we're supposed to respond. The comedy isn't consistent enough for it to be anything but out of place.
We also have problems with the pacing when switching between characters. Initially it looks like we're sticking with Coxman throughout the film, but we start jarringly cutting back and forth to Viking's family life, and then we throw in the cops who ultimately don't impact on the film, then the rival gang and everything starts to feel like it's meandering towards the finale instead of escalating towards it. It feels like a mishandled version of Lock, Stock and Two Smoking Barrels, which was similarly structure but better handled.
The individual elements of the movie are actually solid. The cast is strong and entertaining, especially Liam Neeson wearing a very familiar pair of shoes. The setting looks very pretty and all the houses of the characters are super cool. The central premise of characters being introduced and killed off generates a couple of good laughs, especially with the use of title cards marking each person's death between scenes.
Maybe I'm missing something with this, but it didn't have a strong impact. It feels like it missed the mark. I will be checking out the original in a week or so though, mostly because I like the title.
← Spotlight On: Edward D. Wood Jr.


The aim of this article is to discuss how to design store display. The display of products that makes them appealing, interesting, accessible, engaging, and enticing to shoppers in a retail store. Visual merchandising utilizes displays, color, lighting, aromas, sounds, digital technology in addition to interactive elements to catch customers' focus and persuade those to make purchases. Visual merchandising aids convey the image on the brand and displays the personality on the target markets which the retail store desires to attract. Designing a powerful and dynamic retailer display takes some practice and probably just a little research. Use these tips to offer ideas and guidelines to visit. Using these ideas, you should manage to purposefully create your own personal boutique or retail displays with your goals in intellect.


So goes the monarch caterpillars on our backyard milkweed plants. The small bushes begin to look like Charlie Brown Christmas trees as the caterpillars crawl up and down the milkweeds devouring each and just about every leaf. It is smart that the monarchs only lay a single egg on a milkweed plant and not all the eggs in one place. This way there will be enough food for the caterpillars to eat. Most butterfly species use this strategy.
Evolution played a role in this. Over the hundreds of thousands of years that butterflies evolved, those monarch butterflies that laid too many eggs on one plant died because there wasn't sufficient food for all of them. The genes they carried to lay many eggs in one place died with them. The offspring of the "smart" adults that placed their eggs judiciously survived and passed this single egg laying gene on.
Evolution has a way of weeding out problem areas of species that help them survive. If a species can't adapt to the changing world, it perishes. There were five species of humans all living at the same time over 200,000 years ago. We are the only ones that did not become extinct because we evolved behaviors that helped us survive unstable environments. Where will evolution takes us? Will we be able to meet the challenges of the future? Only if evolution enables our species to survive another 200,000 years will those questions be answered.


Shareable: In the book, you and Silke focus on what is described as the consciousness of thinking, learning, and acting as a commoner as the heart of the commons movement. What does this mean to you?
You have to start talking about the commons as this organic whole, and not as this machine you can break down into parts or dissect. It's a living organism and that's precisely what needs to be studied: its aliveness.


Lindora has four six, ten- week plans they can be repeated until the desired weight is attained. Hi Yael You may need to try it a few times before seeing an improvement.
Soundboard No In all the many years Ive worked children Ive never heard a child say Mum Dad have just what I want. My wife is in her 40s and has been on an 800 calorie diet for a month.
It claims you can lose a stone in a week if followed exactly. And is it OK to cheat once a week?
How' s that for foolproof? As of this morning, I have lost 8. In short yes synthetic urine works to pass a urinalysis. This is the first last only weight loss article you will EVER need to read.
* Disclaimer: This is not my diet plan I am just following it. This my friends is a guide.
5lbs i meant like. The first week was just getting used to it getting off sugar snacks.
• The 3 Week Ketogenic Diet offers neighbourly management to help all the users in achieving their Keto Cheat Day Once A Week duty loss goals. I' m VERY happy with this since I cheated a bit on the banana day.
Unfortunately because of the proliferation of so many companies , products it can be quite overwhelming to de. Only, this is much more than an article. Go deeper than any other Slim 4 Life review as our researchers detail facts on ingredients cost, food lists & products. I cheated on my diet once a week.
Love the product. Moderation is not an option for some the only safe choice may be complete abstinence. Now I have to admit that I' ve cheated a few times on my diet but haven' t gain weight.
This is reflected in the fact that the weight loss industry is now a billion dollar global industry. " I' ve used TrimYou over the last several years when I' ve wanted to loose weight just kick- start healthy living it' s been a Godsend! The 3 Day Diet Plan also called the Military Diet, author, is one of the most popular short term diets on the has been around since the mid 1980, but it is extremely popular , without a source people report success ( up to 10 pounds weight loss) on this diet. We want to thank you for your personal input. The ability to recover quickly after a horrible binge eating is essential to ketogenic success. Hi it is very inspiring. They weren' t a replacement for my old favorite pancakes, but they were respectable. " I want to have a cheat day once a week where I can eat whatever I want without worrying about my calories, " they often say.
This diet includes recipes and detailed meal descriptions for seven days. Perfect) on their diets that they simply can' t keep up with it day in and day out. Slim4Life Reviews – does this claimed 10- week weight loss game changer live up to the hype?
I' ve already lost 17lbs in 6 weeks! There are several more less casual / controversial uses for synthetic urine than to pass a drug test, classroom experiments , such as: In science institutions, movies – much cleaner more convenient. Over the years I' ve tried every kind of diet have even worked with a trainer , have found the best results were with ply melissa February 15 at 10: 55 pm.
Following this boiled egg diet 28 day will help you lose up to 37 pounds in 28 days. Permanent weight. I would have probably written the exact same thing a year ago.
I don' t drink much soda — I drink mostly water and coffee at work — so the sudden increase in the amount of corn syrup in my diet made me feel incredibly sluggish. Nicolas Cage Files for Annulment 4 Days After Getting Married — Nicolas Cage and Erika Koike got married 4 days ago. OMG I have started 3 weeks ago. • You can achieve a list of recipes reason tips , supplementary to reform your life , lifestyle for having desired phenomenon knead , diet plan, unworldly exercise fitness in fewer days. Lunch : Try to eat as mush of one fruit that you like, see fruits below. Once you accept that occasional cheat day is not the end of the world ( but not suggested also) you can use the extra energy to your advantage.
— Nic Erika tied the knot Saturday in Las Vegas the very same day they applied for a marriage license. Then I went to camp kind of pigged out gained 8lbs in a total of 6 weeks. With 30 years in the business, does this company have the answer to how to lose weight fast? She counts every single calorie.
Lose weight be healthy don' t starve yourself! I enjoyed the bananas my friend made tacos , skim milk ( I only had 5 bananas , We had 3 children here, but I had unexpected company fresh guacamole. Everything you thought you knew about your wife marriage – hell about LIFE itself – it' s all up in the air.
I am on day 6 of this diet. Unlike other HCG reviews this is my personal. Check with your doctor before doing this diet and read the blog link provided.
You asked whether to brush before or after the oil pulling. - - Sylvia G Thanks for all the information and for changing my eating plan. What can happen when an alcoholic grabs just one drink? But if you choose to save up your cheating for once a week, won' t those extra 630 calories affect your metabolism? After a year on the keto diet, I find I miss my morning pancakes.
Aug 03, · * Disclaimer: This is not my diet plan I am just following it. I started my keto diet with almost 2 day fast. How to Cheat on Your Diet and Still Lose Weight. By Rayzel hcgchica. Josephson says it won' t for two reasons: The cheating is modest you' re eating well the vast majority. If you' ve been reading HCG diet reviews read my account of phase one and two plus my actual daily losses. - Orange Pears, Apples, Strawberry, Plums, Cantaloupe Watermelon 3.
" Can You Cheat On Your Diet Once A Week Watch more videos for more knowledge Cheat Day Once a Week to Build Muscle & Burn. This is it, folks.
And he' s already sick and tired of the union because he' s filed for an annulment — could be a record. I am simply sharing my experience with this diet and not recommending it*. It far surpasses the help I' ve had with any other diet plan. " But will this cheat day hurt my weight loss?
This tuesday night makes 2 weeks on it. Day four of a seven- day plan to help you lose 10 pounds in one week.
[ SOUNDBOARD NO ] If you want to make him sure you are the one CLICK HERE! Your Wife Cheated – Here' s a Common But Deadly Mistake To Avoid. Im going to stick it out then aftrwards just start a new healthier eating regime , see what happens exercise regularly. Today you eat fruit, but this is not a fruit- only diet. HCG Diet Dosage: Troubleshooting Hunger on the hCG Diet – How To Find the Right Dose for You. " In other cases, people eat so " clean" ( i.
Are Cheat Meals Good Or Bad For Weight Loss? I cheated on my diet once a week.
Well i started my second week in a row yesterday and finish my 2 weeks on saturday. My digestive system continued to writhe but happily my hunger level didn' t increase. And I dont mean like.
Is my diet plan OK? Does Synthetic Urine Work For Drug Tests? But enjoy them four days a week instead of five. So you find out your wife cheated. Soundboard No ★ ★ Getting Bored With Marriage ★ Your next strategy is to make him want you just as much as you want him.
It' s toxin free it' s what the testing labs themselves use to calibrate their equipment, since it gives the same consistent result. I' m 15 years old but then I lost weight was 109lbs aiming for a goal weight of 103lbs. It could be 90 calories each day or 630 calories once a week. And your entire world is upside down.
I cheated on my diet once a week. Dinner – Grilled meat only completely fat free Cut , Ground * mutton lamb are not allowed. In recent times Lindora clinics have introduced an online , moving it gradually from the hitherto brick- , phone- based version of the program - mortar clinic version. I cheated on my diet once a week.
Do not follow this diet for more than a week at a time. I cheated on my diet once a week. I made these today they were quite good. It' s a little more complicated though nowadays than it once was not always the best option for your drug exam.
The basis of this diet is chemical, not quantities. My advice is to brush beforehand because that will eliminate many bacteria fungi from your mouth. I enjoyed the bananas but I had unexpected company, skim milk ( I only had 5 bananas , We had 3 children here my.
Diet ' cheat days' can actually boost your chances of weight loss success. Golo Diet Review Losing weight is something that many of us are concerned about. But if the pizza makes my diet sustainable. The same can happen to a sugar addict you may end up going off the rails.
This diet doesn' t exactly permit a ton of variety. As part of this week- long program but only for this week , you will focus on specific foods to lose weight not on an ongoing basis.
On Breakfast - 1/ 2 Orange Grapefruit - 1 2 Boiled Eggs 2.
Author: wowketodiet. This is 6 Week Diet Plan By wowketodiet. We love to read books and my job is to analyze daily all the novelties in the world of ebooks.
Here is my personal 3 week diet plan review.
When the 3 week diet was suggested to me I was skeptical, but desperate! However it worked and after 2 rounds I' ve lost lots of weight and am happy with my body. Read about my experiences of doing the diet system and see my results.
I gave up added sugar, dairy, and grains— and I only cheated once. The HCG diet plan is fairly simple once you understand it. It works and millions of people have used it to lose a lot of weight.
But if you do it wrong you wont get the results you were hoping for so lets go over the tailed answers to 5 questions about the transition phase of the hCG diet plan as you end Phase 2.
How to do it right and what do if you screwed it up. My second- day fruitarian menu was very similar to my first.


Looking for your new favorite ring? Well, we've got it right here. This is our Concise Style Ring in .925 sterling silver. It's a plain silver band that is made up of small spheres. The high polish gives the surface an elegant and luxurious looking gleam. When you want to go sleek and minimalist, simply wear this ring alone. But if you want to go really bold, stack multiples on one finger. Another fabulous option would be to organize your own little ring party that will show off your own style and personality. A plain silver ring like this would also make for quite the modern wedding ring or promise ring. There are so many fierce ways to accessorize with this piece.


text:
Multi-level industrial takes off in Australia
Multi-level warehouses will become a feature of the Australian property market as the demands of online shopping bear down on land-constrained cities and force developers to evaluate building design.
Two two-storey warehouses are already being planned for Botany, 10km south of the Sydney CBD, where development sites are scarce. Building vertically is the only option for logistics and supply chain companies under pressure to meet increasing demand for e-commerce led same-day delivery.
Botany is home to Australia's biggest sea port, as well as Sydney International airport. These factors, coupled with its proximity to the Sydney CBD, make it a key strategic location for logistics and supply chain businesses.
Weighing up the benefits
For a logistics company in Australia, transport is responsible for 50 percent of business costs, while rent makes up only four to seven percent, according to Michael Fenton, who heads JLL's industrial team in Australia.
"This makes proximity to core markets a critical consideration for occupiers," he says. "In a land constrained city like Sydney – where a lot of industrial product was rezoned to residential – building vertically is a logical next step."
Online purchases in Australia increased by 11.5 percent in 2017 compared to the previous year, according to a recent white paper by Australia Post and StarTrack.
With consumers in New South Wales and Victoria the most active in the country, state-capital Melbourne is on track to follow Sydney's example of maximising industrial land sites.
Besides cost-savings, this development model has added sustainability benefits as building on smaller sites closer to the customer base also equate to reduced carbon emissions. "It's a win for business, people and planet," says Simone Concha, Sustainability Director at JLL Australia.
A global template
In February, Greg Goodman, chief executive of industrial developer Goodman Group, announced the company's plans for multi-storey warehouses, citing south Sydney and inner Melbourne as potential areas for development.
Goodman already owns high rise industrial developments in Asia where, in space squeezed cities such as Hong Kong, Singapore and Beijing, the precedent was set for this global trend.
The multi-level format also features in continental Europe, where, among other developers, UK-based REIT SEGRO has built a two-storey 14,000 square metre facility in central Munich, and another two storey development, over 60,400 square metres, in Gennevilliers, northern Paris.
Having also developed multi-storey sheds in Asia, Prologis took the trend to the U.S in the shape of a three-storey, 54,777 square metre facility in Seattle which is expected to be operational in September. The facility has ramps for truck access to second-floor loading docks, then a freight elevator linking the third floor to ground floor loading docks.
In New York there are no less than three vertical warehouses planned – in Brooklyn, the Bronx and Queens – designed to accommodate the 16 metre trucks commonly used in the U.S.
The multi-level format is about to hit London, too, as Gazeley – which has been recently acquired by the Asian warehouse developer GLP – gets to work on a three-storey, 40,000 square meter freight handling facility in the Docklands area to be used as a last mile logistics hub. The development will be the first of its kind in the UK.
Industrial property has become a hot commodity in Australia, with strong demand and a scarcity of land combining to drive up land values and rents.
The leasing market recorded gross take-up above the 1 million square meter mark for the third successive year in 2017. Last year also saw the strongest annual growth rate in 12 years, with a 4.1 percent uptick over the year, according to the JLL report An Assessment of Sydney's Industrial Land Supply
For investors, Fenton says the multi-level format provides the opportunity to acquire larger assets in markets with a broad captive tenant base ensuring strong rental and capital growth into the future.
The trade-off is the higher land values closer to city centres, and expensive automation, which can sometimes be pricier than the cost of building.
Click to find out how investors are finding value in converted warehouses.

redpajama_set_name: RedPajamaCommonCrawl


The plan for development and its implementation is a basic necessity for MIS. In MIS the information is recognized as major resource likecapital and time. If this resource has to be managed well, it calls upon themanagement to plan for it and control it, so that the information becomesa vital resource for the system.
A system analyst is responsible for analyzing, designing and implementing systems to fulfill organizational needs. He/she plays a vital role in making operational the management information system. The role of the system analyst has however changed.
Richard Nolan (1974) has discussed a framework for IS planning, popularly known as Nolan stage model. The basic premise of the model is that any organization will move through stages of maturity with respect to the use and management of IS. While progressing, an organization must go through each stage of growth before it can move to the next stage.
A wide variety of techniques are being applied for IS panning. However, organizations select these techniques based on the persuasive power of IS developers rather than on a sound logic.
Organizations that plan their information system tend to achieve better results than organizations that do not, yet studies reveal that many organizations either do not plan or do it unsystematically.
ERP - What is ERP?
Enterprise resource planning involves procuring and accumulating the resources for their optimum utilization through integrating them at one place and giving multiple accesses to these resources. The broad sets of activities are supported by multi module application software.
Information as a necessary evil: - Information was regarded as a necessary evil, associated with the development, production and marketing of products or services. Information was thus merely considered as a by-product of transactions in the organizations.
What is MIS? Define the Function and characteristics of MIS?
Management information system is a set of systems which helps management at different levels to take better decisions by providing the necessary information to managers. Management information system is not a monolithic entity but a collection of systems which provide the user with a monolithic feel as far as information delivery, transmission and storage is concerned.
MIS is set up by an organization with the prime objective to obtain management information to be used by its managers in decision-making. Thus, MIS must perform the following functions in order to meet its objectives.
Traditional Marketing: In traditional marketing, more importance is given on selling the product. They start with production and marketing is done while selling and promoting the product to attain sales at profit. In this technique, the existing products are imposed on the market through aggressive selling and promotional pressures.
Data : Data is raw facts. Data is like raw material. Data does not interrelate and also it does not help in decision making. Data is defined as groups of non-random symbols in the form of text, images, voice representing quantities, action and objects.
To facilitate the management decision making at all levels of company, the MIS must be integrated. MIS units are company wide. MIS is available for the Top management. The top management of company should play an active role in designing, modifying and maintenance of the total organization wide management information system.
What is Quality of Information?
The value of information is a very slippery concept as information per se does not have any universal value. Its value is related to the person who uses it, when he uses it and for what he uses it. Any assessment of the value of information is therefore related to the value of the decision-making supported by such information.


I believe in the paradox that the best advertising ideas are not advertising anymore. They are ideas that change the world, that influence cultures.
I love them and it still keeps me up at night when think I got one. It doesn't matter if the next day I wake up and I consider it stupid. It's all part of the game.
I won Two Cannes Grand Prix Prizes and a Titanium Lion.
Also i can be proud with winning Golds, Silvers and Bronzes in Cannes and other international festivals.


Os 30 Melhores Pap Is De Parede Para O Windows Avec Gato Et Imagens Legais Para Plano De Fundo 3 1131x707px Imagens Legais Para Plano De Fundo is one of pictures thet are related with the picture before in the collection gallery. If you would like to see the Os 30 Melhores Pap Is De Parede Para O Windows Avec Gato Et Imagens Legais Para Plano De Fundo 3 1131x707px Imagens Legais Para Plano De Fundo in High Resolution [HD Resolution] version, please press the right click on picures/image then choose "Save as Image" option, and done. You will get Os 30 Melhores Pap Is De Parede Para O Windows Avec Gato Et Imagens Legais Para Plano De Fundo 3 1131x707px Imagens Legais Para Plano De Fundo pictures that you want. The exactly dimension of Os 30 Melhores Pap Is De Parede Para O Windows Avec Gato Et Imagens Legais Para Plano De Fundo 3 1131x707px Imagens Legais Para Plano De Fundo was 1131x707 pixels. You can also look for some pictures by collection on below this picture. Find the other picture or article about Imagens Legais Para Plano De Fundo here. We hope it can help you to get information of the picture.


Thank You to Our 2018 Supporters.
What does the Eames House mean to you?
Help us share the Eameses' joy and rigor with future visitors, so they may have a direct experience of Charles and Ray's approach to life and work.
Check out our embossed prints! Have a picnic!
Have an interior tour! Make a donation!
Raised funds support our 250 Year Project.


The authors of Core Security Patterns discuss identity management security patterns and best practices for their implementation.
In Chapter 7, "Identity Management Standards and Technologies," we introduced the identity management and the relevant security standards, such as SAML, Liberty, and XACML. SAML is an XML protocol for representing authentication and authorization assertions and is used for single sign-on and global logout. Liberty reuses the security assertion framework from SAML and extends it with different identity profiles and framework. XACML provides a versatile policy management framework for administering access control rules and managing security policies. These security standards are important because they allow different security vendor products to interoperate with each other. Architects and developers are now able to work with different security infrastructures without rewriting most of the security components.
In a heterogeneous application infrastructure environment, each application system may have different user authentication mechanisms and customized authorization schemes. Enabling unified access with single sign-on and exit with global logout is a complex process. To handle this, architects and developers may need to build custom mechanisms or ensure that the current sign-on mechanisms support open standards such as SAML and Liberty. In either case, there is much similar processing logic and code in the Identity tier that can be refactored for reuse. You may also want to extract some commonly used security processing into helper classes instead of embedding the security processing logic into each of the authentication and authorization functions. If different versions of security packages are used simultaneously (for example, due to support for legacy systems), it would be useful to build an abstraction layer (using façde or delegate patterns) so that the identity management functionality can support multiple versions with backward compatibility. In these scenarios, adopting security patterns would be useful in addressing these requirements in the Identity tier.
In identity management, security patterns can provide a common design framework, unified SSO, and global-logout mechanisms for use with heterogeneous applications. They can also reduce significant design and development effort, because they simplify complexity while they capture many security best practices. Using abstraction, these security patterns can shield off custom-built or specific-vendor APIs, and this can reduce the impact of vendor lock-in if customers want to switch to another vendor product. Additionally, because security standards are still evolving, the abstraction layer in the security pattern can help mitigate the risk of migrating to new security standards.
There are many security vendor products and open source toolkits available in the market today that support SAML, Liberty, and XACML. Some security vendor products provide administrator-friendly agents or adapters so that you do not need to customize their applications by adding SAML protocols or Liberty identity profiles to their software program code. This is particularly useful for those who have a large amount of packaged applications purchased from vendors. Nevertheless, there are many of them who have home-grown applications that need to work with standards-based identity management architecture. This mandates a reusable identity management framework and security patterns to resolve the recurring problems and complexities.
You need a structured and consistent approach to gathering security information (for example, SAML assertions) about the authentication action performed on a subject, attribute information about the subject, or an authorization request from a trusted service provider.
Security assertions are authentication and authorization-related information exchanged between trusted service providers and requesters, and are used as a common mechanism for enabling applications to support SSO without requiring the client to login multiple times. To enable a trusted environment, we need to address the requirements of SSO with heterogeneous applications, discrete authentication schemes, authorization policies, and other related attributes in use. This requires having a generic mechanism for constructing and processing SAML-based assertions.
You want to avoid duplicate program logic for building authentication assertion, authorization decision assertion, and attribute statements.
You need to apply common processing logic to similar security assertion statements.
You need a helper class to extract similar processing logic to build SAML assertion statements instead of embedding them into the authentication and authorization processes.
You want the flexibility to support client requests from a servlet, EJB client, or a SOAP client.
Use an Assertion Builder to abstract similar processing control logic in order to create SAML assertion statements.
The Assertion Builder pattern encapsulates the processing control logic in order to create SAML authentication statements, authorization decision statements, and attribute statements as a service. Each assertion statement generation shares similar program logic of creating the SAML header (for example, schema version) and instantiating the assertion type, conditions, and subject statement information. The common program logic can also be used to avoid locking in with a specific product implementation. By exposing the Assertion Builder as a service, developers can also access SAML assertion statement creation using SOAP protocol binding without creating separate protocol handling routines.
Under a single sign-on environment (refer to Figure 12–3), a client authenticates with a single sign-on service provider (also known as the source site) and later requests access to a resource from a destination site. Upon successful authentication, the source site is able to redirect the client request to the destination site, assuming that the source site has a sophisticated security engine that determines the client is allowed to access the destination site. Then, the destination site will issue a SAML request to ask for an authentication assertion from the source site. The Assertion Builder will be used to assemble sign-on information and user credentials to generate SAML assertion statements. This is applicable for both the source site (processing SAML responses) and the destination site (processing SAML requests). The destination site will then respond to the client for resource access. Subsequently, the destination site will handle authorization decisions and attribute statements to determine what access level is allowed for the client request.
Figure 12–1 depicts a high-level architecture diagram of the Assertion Builder pattern. In a typical application scenario, developers can design an Assertion Builder to provide the service of generating SAML authentication statements, SAML authorization decision statements, and SAML attribute statements. The Assertion Builder creates a system context (Assertion Context) and produces a SAML assertion statement (Assertion), which can be an authentication statement, an authorization decision statement, or an attribute statement. An EJB client can perform a JNDI service look-up of the SAML Assertion Builder service and invoke the preliminary utilities to assemble the SAML headers. After that, it invokes the relevant statement generation function, such as authentication statement. Similarly, a servlet can perform service invocation by acting as an EJB client. For a SOAP client, the Assertion Builder service bean needs to be exposed as a WSDL. Upon service invocation, the Assertion Builder utilities will marshal and unmarshal the SOAP envelope when the protocol binding is set to SOAP.
Figure 12–2 shows a class diagram for Assertion Builder service. The core Assertion Builder service consists of two important classes: AssertionContext and Assertion. The AssertionContext class defines the public interfaces for managing the system context when creating SAML assertion statements, SAML assertion types, and the protocol binding. If the SAML binding is set to be SOAP over HTTP, then the Assertion Builder service needs to wrap the SAML artifacts with a SOAP envelope instead of the HTTP header. It has a corresponding implementation class called AssertionContextImpl.
The Assertion class refers to the SAML assertion statement object. It contains basic elements of subject information (such as subject's IP address, subject's DNS address), source Web site, and destination Web site for the creation of SAML assertion statements. There is a corresponding data class called Subject, which refers to the principal for the security authentication or authorization. Each Assertion contains a Subject element. The Assertion class is also extended into AuthenticationStatement, AuthorizationDecisionStatement, and AttributeStatement. Each of these three assertion statement classes is responsible for creating SAML assertion statements, respectively, according to the SAML 2.0 specification. Attribute is a data class that encapsulates the distinctive characteristics of a subject and denotes the attributes in a SAML attribute statement.
Figure 12–3 depicts a use case scenario where a client is requesting resource access from a destination site via the source site that acts as a single sign-on service provider. Client refers to a Web browser that initiates the resource access request. SourceSite denotes the single sign-on service provider that manages security information about which resources can be accessible in other affiliated sites, including DestinationSite. DestinationSite denotes the target site with resources that Client intends to access.
This is a scenario for a Web browser interacting with the source and destination sites with single sign-on (i.e., browser profile), and it is not applicable to a server-to-server single sign-on scenario. The Assertion Builder pattern is implemented for Steps 3 through 14. The other steps are provided here to provide a better context only.
Client accesses resources provided by the service provider (SourceSite).
SourceSite verifies if Client is authenticated already.
SourceSite creates an instance of AssertionBuilder. In this scenario, the instance is for creating a SAML authentication assertion request.
DestinationSite also creates an instance of AssertionBuilder. This is for creating a SAML authentication assertion response.
AssertionBuilder retrieves SAML protocol binding (for example, SOAP binding) for the interaction with SourceSite or DestinationSite.
SourceSite redirects the resource access to the destination site DestinationSite via URL redirection.
Client accesses the artifact receiver URL.
AssertionBuilder assembles information to build the SAML header and tokenizes the user credentials (i.e., creates any security token from the user credentials) to facilitate the interaction with DestinationSite.
AssertionBuilder creates the relevant protocol binding. For example, if this is a SOAP binding, then AssertionBuilder creates the SOAP envelope and uses the SOAP binding protocol.
AssertionBuilder creates a SAML assertion statement (for example, SAML authentication assertion request) and sends it to DestinationSite.
DestinationSite issues a SAML request for any authentication assertion statement to SourceSite.
AssertionBuilder assembles information to build the SAML header and tokenizes the user credentials to facilitate interaction with SourceSite.
AssertionBuilder creates a SAML assertion statement (for example, SAML authentication assertion response) and sends it to SourceSite.
SourceSite issues a SAML response to DestinationSite.
DestinationSite responds to user response for resources at the destination site.
It is possible that the same client may be using a mixture of SOAP over HTTP and SOAP over HTTPS SAML requests under different use case scenarios. It is important to be flexible about the protocol binding so that different protocols are supported. To accommodate such flexibility, developers can use a custom protocol binding look-up function to determine which SAML protocol binding is used for the SAML request.
Developers can add extra security control by adding timestamp comparison control for processing SAML responses in order to address the security risks of replay, message insertion, or message deletion. They can also compare the AuthenticationInstant timestamp in the SAML request and the SAML response. Typically, the timestamp in the SAML response is slightly behind the SAML request time. Another extension is to define a timeout strategy for the authentication timestamp. For example, a strategy might be that the destination site will not allow access for a client request if the authentication timestamp is over 120 minutes ago.
Although the subject IP and DNS addresses are optional in the current SAML 1.1 or 2.0 specifications, it is always a good design strategy to capture them for audit control purposes. For example, some hackers may be able to replay SAML assertion statements within the customer LAN. By tracking the subject IP and DNS addresses, security architects and developers are able to quickly detect any SAML assertion statements with unusual IP and DNS addresses.
The Assertion Builder pattern should be used in conjunction with the Single Sign-on Delegator (refer to next section for details). The Single Sign-on Delegator shields off the design complexity of remote communication with different assertion statement creation services and utilities of the Assertion Builder, as well as other single sign-on services such as Java Connector for legacy systems. This is particularly useful when these single sign-on services are provided in a variety of technologies, such as EJBs, servlets, Java Beans, and custom applications.
Addresses broken authentication flaw. The Assertion Builder pattern can be used to build a helper class that creates and sends SAML authentication statements between trusted service providers. The SAML authentication statement denotes security information regarding authentication data about the subject. This helps to safeguard the authentication mechanisms from a potential broken authentication flaw.
Addresses broken access control risk. The Assertion Builder pattern can be used to create SAML authorization decision and attribute statements. The SAML authorization decision statement denotes a critical decision about granting or denying resource access for a subject. This helps to safeguard the access control mechanisms from potential broken access control flaws.
Enables transparency by encapsulating the assertion statements. The Assertion Builder pattern encapsulates three different assertion statement creation functionalities with similar processing logic. It is easier to maintain and use. In addition, architects and developers do not need to embed the processing logic of building SAML assertion statements in the business processing logic.
Reduces the complexity of integration. The Assertion Builder pattern allows a flexible service invocation from a variety of clients, including servlets, EJB clients, and SOAP clients. It reduces the integration effort with different platforms.
Example 12–1 shows a sample code excerpt for creating an Assertion Builder for SAML assertion requests. The example creates a SAML authentication statement, a SAML authorization decision statement, and a SAML attribute statement. It defines the assertion type (using the setAssertionType method), initializes the assertion statement object, and sets relevant attributes (for example, setAuthenticationMethod for an authentication statement) for the corresponding assertion statement object. Then it uses the createAssertionStatement method to generate the SAML assertion statement in a document node object. It checks its validity upon completion of the SAML statement creation. It also retrieves the service configurations and protocol bindings (for example, SOAP over HTTP binding) before building SAML assertion statements.
Example 12–2 shows how an authentication statement is implemented. An authentication statement extends the object Assertion, which is an abstraction of SAML assertion statements (including the SAML authentication statement, authorization decision statement, and attribute statement). This authentication statement is intended to implement how a SAML authentication assertion is created. The previous createAuthenticationStatement method in the last section will invoke the create method from the AuthenticationStatement class in order to create a SAML authentication statement. The create method can be implemented using custom SAML APIs, provided by a SAML implementation offered by open source or commercial vendor solution. In this example, the create method uses a constructor from the OpenSAML library to create a SAML authentication statement and checks for the validity of the SAML assertion statement.
Example 12–3 shows an example of creating a system context for the Assertion Builder pattern, which stores the service configuration and protocol binding information for creating and exchange SAML assertion statements. The AssertionContextImpl class is an implementation of the public interfaces defined in the AssertionContext class. This allows better flexibility in adding extensions or making program changes in the future.
*  Note - the @return has not been implemented.
The Assertion Builder pattern is a reusable design that simplifies the creation of SAML assertion statements and can cater to either the synchronous or asynchronous mode of service invocation. The following discusses the security factors associated with the Assertion Builder pattern and the potential risk mitigation.
Configuration issues. Assertion Builder relies on strong authentication by the identity provider. Improper configuration of authentication mechanisms and flawed credential management that compromises application authentication through password change will still lead to broken authentication.
Identity theft. If a user identity is stolen by attackers who uses the user ID and password for proper authentication, Assertion Builder will not be able to address such a security risk. Use of XML Signature will help verifying the signer and also ensure the message is integral and tamper-proof during transit.
Confidentiality. Using the HTTPS protocol to protect the client-to-server session is a stronger means of supporting confidentiality, because no unauthorized user can snoop the SAML assertion statements from the wire.
XML digital signature. Using XML digital signature to the SAML assertion statements assures that no one can modify or tamper with the message content.
Reliability. SAML assertion statements can be bound to a reliable data transport mechanism such as SOAP over JMS. This ensures that the recipient (either the source site or the destination site) can reliably get the SAML request or response.
Should we build assertion builder code from scratch? There are a few security vendor products that have out-of-the-box SAML assertion statement builder capability. In this case, architects and developers may either directly invoke the SAML assertion builder function or abstract them under the Assertion Builder pattern.
Capturing IP address. Although the SAML assertion statement allows capturing the source IP address, it is rather difficult to capture the real IP address in real life because real IP addresses can be translated into another virtual IP address or hidden from proxies. However, it is still a good practice to capture the IP address for verifying the origin host for authenticity, troubleshooting and other auditing purposes.
Dependency on authentication infrastructure. It is plausible to enable single sign-on security by using SAML assertions alone. However, SAML assertions depend on an existing authentication infrastructure.
Migration from SAML 1.1 to SAML 2.0. There are some deprecated items and changes in SAML 2.0. The SAML specifications do not provide guidance on how to migrate from SAML 1.1 to SAML 2.0, or how to make them compatible between trading partners running different SAML versions. Thus, it is important to cater to service versioning of SAML messages and to migrate the messaging infrastructure to SAML 2.0.
Single Sign-on Delegator. Single Sign-on Delegator provides a delegate design approach to connect to remote security services and enables single sign-on within the same security domain or across multiple security domains. It is a good fit to use Assertion Builder in conjunction with Single Sign-on Delegator.
You want to hide the complexity of interacting directly with heterogeneous service invocation methods or programming models of remote identity management or single sign-on service components.
In a heterogeneous security environment, you may need to use multiple vendor products to build their custom identity management functionality, such as account provisioning and authentication. Each vendor product may require different service invocation methods or programming models. If developers design the client to interact directly with remote identity management or single sign-on service interfaces, they probably need to add vendor-specific or fine-grained business logic in the client. This usually results in deploying a heavy client footprint or building rich clients that are loaded with complex security-specific business logic. Thus, such tight-coupling of the client directly with vendor-specific business logic creates many limitations for scalability in client-side performance, network connectivity, server-side caching, and support of a large number of simultaneous connections. In addition, you need to explicitly handle different types of network or system exceptions in the individual vendor-specific business logic while invoking the remote security services directly.
One related problem is software code maintenance and release control issues. If any identity management service interface changes, for example, due to a change in security standards or API specifications, developers have to maintain any corresponding client-side code changes. The client-side code also needs to be redeployed. This is quite a considerable software release control and maintenance issue because the tight-coupling architecture model is not flexible enough to accommodate software code changes.
Another problem is the lack of a flexible programming model for adding or managing new identity management functionalities if the existing vendor-specific APIs currently do not support them. For example, if the current security application architecture does not support global logout, it defeats the purpose of Single Sign-on in an integration environment, which may create authentication issues and session hijacking risks. At the worst, developers are required to rewrite the security application architecture every time they integrate a new application. Developers may also need to add newer functionalities in order to achieve Single Sign-on.
You want to minimize the coupling between the clients and the remote identity management services for better scalability or for easier software maintenance.
You want to streamline adding or removing identity management or single sign-on security service components (such as global logout), without reengineering the client or back-end application architecture.
You want to hide the details of handling heterogeneous service invocation bindings (for example, EJB and asynchronous messaging) and service configuration of multiple security service components (for example, identity server and directory server) from the clients.
You want to translate network exceptions caused by accessing different identity management service components into the application or user exceptions.
Use a Single Sign-on Delegator to encapsulate access to identity management and single sign-on functionalities, allowing independent evolution of loosely coupled identity management services while providing system availability.
A Single Sign-on Delegator resides in the middle tier between the clients and the identity management service components. It delegates the service request to the remote service components. It de-couples the physical security service interfaces and hides the details of service invocation, retrieval of security configuration, or credential token processing from the client. In other words, the client does not interact directly with the identity management service interfaces. The Single Sign-on Delegator in turn prepares for Single Sign-on, configures the security session, looks up the physical security service interfaces, invokes appropriate security service interfaces, and performs global logout at the end. Such loosely coupled application architecture minimizes the change impact to the client even though the remote security service interfaces require software upgrade or business logic changes.
A Business Delegate pattern would not be appropriate because it simply delegates the service request to the corresponding remote business components. It does not cater to configuring the security session or delegating to the remote security service components using the appropriate security protocols and bindings. Alternatively, developers can craft their own program construct to access remote service components. Using a design pattern approach to refactor similar security configuration (or preambles) for multiple remote security services into a single and reusable framework will enable higher reusability. The Single Sign-on Delegator pattern refactors similar security session processing logic and security configuration, and increases reusability.
To implement the Single Sign-on Delegator, you apply the delegator pattern that shields off the complexity of invoking service requests of building SAML assertions, processing credential tokens, performing global logout, initiating security service provisioning requests, and any custom identity management functions from heterogeneous vendor product APIs and programming models. They can create a unique service ID for each remote security service, create a service handler for each service interface, and then invoke the target security service. Under this delegator framework, it is easy to use the SAML protocol to perform single sign-on across remote security services. Similarly, it is also flexible enough to implement global logout by sending logout requests to each remote service because the delegator holds all unique service IDs and the relevant service handlers.
You can also use the Single Sign-on Delegator in conjunction with J2EE Connector Architecture. Single Sign-on Delegator can populate the security token or security context to legacy system environments, including ERP systems or EIS. If ERP systems have their own connectors or adapters, Single Sign-on Delegator can also exchange security tokens by encapsulating their connector APIs.
One major benefit of using the Single Sign-on Delegator is the convenience of encapsulating access to vendor-specific identity management APIs. Doing so shields the business components from changes in the underlying security vendor product implementation.
Figure 12–4 depicts a class diagram for the Single Sign-on Delegator. The client accesses the Single Sign-on Delegator component to invoke the remote security service components (SSOServiceProvider). The delegator (SSODelegator) retrieves security service configuration and service binding information from the system context (SSOContext) based on the client request. In other words, the client may be using a servlet, EJB, or Web services to access the identity management service. The delegator can also look up the service location via JNDI look-up or service registry look-up (if this is a Web service) according to the configuration details or service bindings. This can simplify the design construct for accommodating multiple security protocol bindings.
There are three important classes in Figure 12–4: SSOContext, SSODelegatorFactory and SSOServiceProvider. The SSOContext is a system context that encapsulates the service configuration and protocol binding for the remote service providers. It also stores the service status and the component reference (aka handler ID) for the remote service provider. The SSOContextImpl class is the implementation for the SSOContext class.
The SSODelegatorFactory defines the public interfaces to creating and closing a secure connection to the remote service provider. It takes a security token from the service requester so that it can validate the connection service request under a single sign-on environment. When a secure connection is established, the SSODelegatorFactory will also create a SSOToken used internally to reference it with the remote service provider. The SSODelegatorFactoryImpl class is the implementation for SSODelegatorFactory.
The SSOServiceProvider class defines the public interfaces for creating, closing, or reconnecting to a remote service. Figure 12–4 shows two examples of service providers (SSOServiceProviderImpl1 and SSOServiceProviderImpl2) that implement the public interfaces.
Client wants to invoke remote services via SSODelegator. SSODelegator verifies if Client is authorized to invoke remote security services.
Upon successful verification, Client creates a delegator instance of _SSODelegator.
SSODelegator retrieves service configuration (for example, EJB class name) and protocol bindings (for example, RMI method for EJB) from SSOContext.
SSOContext sends service configurations and protocol bindings to SSODelegator.
SSODelegator creates a single sign-on session using the method createSSODConnection and records the user ID and timestamp in the session information using the method setSessionInfo.
Client initiates a request to invoke a remote service.
SSODelegator creates a service connection to invoke the remote service provider using the method createService.
SSODelegator retrieves the service configuration details (for example, EJB class) and protocol bindings for the remote service.
SSODelegator looks up the service location of the remote security service using ServiceLocator (for example, via JNDI look-up for the remote EJB).
SSODelegator invokes the remote security service by class name or URI.
SSODelegator adds the component reference (also referred to as handler ID) to the SSOContext.
Client requests to log out and close the connection of existing remote security services.
SSODelegator begins to close the security service.
SSODelegator initiates a closeSSOConnection to close the remote service.
SSODelegator removes the component reference from SSOContext. It may also remove any existing session information by invoking the method removeSessionInfo.
SSODelegator now completes closing the single sign-on session.
SSODelegator notifies Client for successful global logout and closing security services.
Client initiates a single sign-on request to access resources under the internal identity provider (or external identity provider).
ServiceProvider creates an instance of single sign-on delegator.
SSODelegator initiates an authentication assertion request with AssertionBuilder.
Before AssertionBuilder creates an authentication assertion, Client needs to perform an authentication with the identity service provider first. Thus, ServiceProvider redirects the authentication request from Client.
ServiceProvider initiates an HTTP authentication request with IdentityProvider.
ServiceProvider obtains the relevant identity service provider identifier (there may be multiple identity service providers).
ServiceProvider uses WebAgent (running on top of the application server) to respond to the authentication request.
WebAgent redirects the authentication request to IdentityProvider.
IdentityProvider processes the authentication request. It presents the authentication login form or HTML page to Client.
Upon submission of the authentication login form by Client, IdentityProvider sends the authentication request response artifact to WebAgent.
WebAgent sends the request with authentication response artifact to ServiceProvider.
ServiceProvider processes the HTTP request with the authentication response artifact with IdentityProvider.
IdentityProvider sends the HTTP response with the authentication assertion.
ServiceProvider processes the authentication assertion.
ServiceProvider sends the HTTP response with the authentication assertion.
WebAgent returns the authentication assertion statement.
Client initiates a request for global logout from all remote security services.
SSODelegator verifies if Client is authorized to log out from all remote services.
Upon successful verification, Client creates an instance of SSODelegator.
SSODelegator retrieves the service configurations and protocol bindings from SSOContext.
SSOContext sends the details of service configurations and protocol bindings to SSODelegator.
SSODelegator fetches all service identifiers from all existing security service connections.
SSODelegator looks up security service location from ServiceLocator.
ServiceLocator returns the service location of remote services.
SSODelegator initiates a global logout request to each remote service.
If the user identity is terminated or revoked by the identity provider or the service provider, the identity management system should not allow the user to continue to create a single sign-on session. Liberty Phase 2 defines a federation termination notification protocol for handling identity termination or revocation (refer to Chapter 7). The Single Sign-on Delegator should be able to subscribe to the federation termination notification protocol.
If a user identity is terminated by the identity provider or service provider in the midst of a single sign-on session, the Single Sign-on Delegator should be able to terminate the single sign-on session using the global logout strategy.
Thwarting session theft. Session theft is a critical security flaw to identity management. The Single Sign-on Delegator creates a secure single sign-on session and delegates the service requests to relevant security services. Client requests must be authenticated with an identity provider before they can establish a secure single sign-on session. This can mitigate the risk of session theft.
Addressing multiple sign-on issues. The Single Sign-on Delegator pattern supports a standards-based single sign-on framework that does not require users to sign on multiple times. There are security attacks that target application systems that are vulnerable due to multiple sign-on actions being required. Thus, the Single Sign-on Delegator can mitigate the multiple sign-on issues.
More flexibility with a loosely coupled architecture. The Single Sign-on Delegator pattern provides a loosely coupled connection to remote security services. It minimizes the coupling between the clients and the remote identity management services. It hides the details of the handling of heterogeneous service invocation bindings and the service configuration of •	multiple security service components from the clients. It also avoids specific-vendor product lock-in by disallowing clients to invoke the remote security services directly.
Better availability of the remote security services. Architects and developers can implement or customize automatic recovery of the remote security services. They can also provide an alternate security services connection if the primary remote security service is not available.
Improves scalability. Architects and developers can have multiple connections to the remote security services. Multiple instances of the remote security services will help improve scalability. In addition, architects and developers can cache some of the session variables or user identity information on behalf of the presentation tier components, which may help boost performance if there are a large number of simultaneous user connections.
Example 12–4 and Example 12–5 show a scenario where a service requester (for example, telecommunications subscriber) intends to access a variety of remote services via a primary service provider (for example, a telecommunication online portal). These sample code excerpts illustrate how to create a Single Sign-on Delegator pattern (using SSODelegatorFactoryImpl) to manage invoking remote security services using EJB. The Client creates an instance of the SSODelegatorFactoryImpl using the method getSSODelegator, and then invokes the method createSSOConnection to start a remote service. Upon completion, the Client invokes the method closeSSOConnection to close the remote service. The SSODelegatorFactoryImpl creates a single sign-on connection, invokes individual security service, and maintains session information. The code comment adds some annotation about how to add your own code to meet your local requirements or to extend the functionality.
Upon successful validation of the security token, the SSODelegatorFactoryImpl will look up the Java object class or URI of the remote service via the servicelocator method from the SSOContext. The SSOContext stores the service status and service configuration of the remote service. The service locator method is a service locator pattern that provides a few methods to look up the service location via EJB or Web services. The sample methods used in this code excerpt are examples only. The details can be found at [CJP2], pp. 315-340, or http://java.sun.com/blueprints/patterns/ServiceLocator.html.
The SSODelegatorFactoryImpl will then invoke the createService method of the remote service. It will update the service status "CREATED"). The component reference to the remote service will be added to SSOContext.
When the Client requests to close the remote service, the SSODelegatorFactoryImpl will invoke the closeService method of the remote service. It will update the service status to "CLOSED" and remove the component reference in the SSOContext.
* In this example, we'll always return true for demo purpose.
* Need to pass a security token and the target service name.
* The service locator will look up where the service name is.
* For demo purpose, we hard-coded a few examples here.
* can invoke the SSO Delegator.
* (authentication and authorization requirements).
* created to connect to remote security service providers.
* type from the Credential Tokenizer.
* For demo purpose, we'll use a string.
* to represent a base64 encoded format of a SSO token.
* connection has been made.
* provider     * connection has been made.
* Get status from the remote service provider.
* the service name is.
Example 12–5 shows sample code for implementing the SSOContext. The _SSOContextImpl class provides methods to add or get the service configuration and protocol binding for the remote service. When a new remote service is connected, the SSOContextImpl will add the component reference (aka handler ID) to the remote service using the method setCompRef and will update the status using the method setStatus.
* Set session information in a HashMap.
* @return Object  return in an Object (for example String).
* Get service name of the remote security service provider.
* This example hardcodes one class name for demo.
// website for sample code download.
Caching user identity information. Caching user identity information in shared memory (for example, implemented in a hash table) is a mechanism used by the Single Sign-on Delegator to improve performance. However, there is also a security risk if any other application client can access the shared memory. Thus, architects and developers need to ensure that cached information is protected and is accessible to the Single Sign-on Delegator only.
Logging and audit risks. Security compliance and local regulations often require all user login and security activities to be logged and audited through	out the user sign-on session. The logging and audit requirements can help to track down any unusual password changes or suspicious transaction changes under the single sign-on session. The security risk is extremely high if the single sign-on session control does not log all user authentication and access control changes throughout the session for audit control.
Too many abstraction layers. Single Sign-on Delegator brings the benefit of loosely coupled architecture by creating an abstraction layer for remote security services. However, if the remote security services have more than one abstraction layer, multiple abstraction layers of remote service invocations will create substantial performance overhead. From experience, one to two abstraction layers would be reasonable.
Supporting multiple circles of trust. Currently, Liberty specification 2.0 does not support integrating multiple circles of trust or interoperating with multiple identity service providers simultaneously (for example, when a client wants to perform single sign-on in two different circles of trust or in two different types of single sign-on environments). Single Sign-on Delegator is not designed to support multiple circles of trust, because it is a delegate design approach that simplifies the connection of remote security services. The support of interoperating with multiple identity service providers is dependent on the Liberty implementation or the remote security services.
Assertion Builder. A Single Sign-on Delegator can delegate the creation of SAML assertion statements via the Assertion Builder to a remote security service provider that assembles and generates a SAML authentication or authorization decision statement. This does not require adding the business logic of managing SAML assertions in the Single Sign-on Delegator.
Credential Tokenizer. A Single Sign-on Delegator can delegate the encapsulation of user credentials to the Credential Tokenizer. This does not require building additional business logic to handle user credentials in the Single Sign-on Delegator. Architects and developers can also reuse the credential tokenizer functions for other applications (for example, EDI messaging applications) without using Single Sign-on Delegator.
Service Locator. The Single Sign-on Delegator pattern uses a Service Locator pattern to look up the service location of the remote security services. In other words, it delegates the service look-up function to a Service Locator, which can be implemented as a JNDI look-up or a UDDI service discovery. Refer to http://java.sun.com/blueprints/patterns/ServiceLocator.html and [CJP2] for details.
You need a flexible mechanism to encapsulate a security token that can be used by different security infrastructure providers.
There are different forms of user credentials (also referred to as security tokens), such as username/passwords, binary security tokens (for example, X.509v3 certificates), Kerberos tickets, SAML tokens, smart card tokens and biometric samples. Most security tokens are domain-specific. To encapsulate these user credentials for use with different security product architectures, developers have to modify the security token processing routine to accommodate individual security product architectures, which depends on the specific security specification the security product uses. A user credential based on a digital certificate will be processed differently than that of a Kerberos ticket. There is no consistent and flexible mechanism for using a common user credential tokenizer that supports different types of security product architectures supporting different security specifications.
You need a reusable component that helps to extract processing logic to handle creation and management of security tokens instead of embedding them in the business logic or the authentication process.
You want to shield off the design and implementation complexity using a common mechanism that can accommodate a security credential and interface with a supporting security provider that makes use of them.
Use a Credential Tokenizer to encapsulate different types of user credentials as a security token that can be reusable across different security providers.
Java applications that need to access user credentials or security tokens from different application security infrastructures.
Web Services security applications that need to encapsulate a security token, such as username token or binary token, in the SOAP message.
Java applications that support SAML or Liberty that need to include an authentication credential in the SAML assertion request or response.
Java applications that need to retrieve user credentials for performing SSO with legacy applications.
To build a Credential Tokenizer, developers need to identify the service, authentication scheme, application provider, and underlying protocol bindings. For example, in a SOAP communication model, the service requestor is required to use a digital certificate as a binary security token for accessing a service end-point. In this case, the service configuration specifies the X.509v3 digital certificate as the security token and SOAP messages and SOAP over HTTPS as the protocol binding. Similarly, in a J2EE application, the client is required to use a Client-certificate for enabling mutual authentication. In this case, the authentication requirements specify an X.509v3 digital certificate as the security token and SOAP over HTTPS as the protocol binding, but the request is represented as HTML generated by a J2EE application using a JSP or a servlet.
Credential Tokenizer provides an API abstraction mechanism for constructing security tokens based on a defined authentication requirement, protocol binding, and application provider. It also provides API mechanisms for retrieving security tokens issued by a security infrastructure provider.
Figure 12–8 depicts a class diagram of the Credential Tokenizer. The Credential Tokenizer can be used to create different security tokens (SecurityToken), including username token and binary tokens (X.509v3 certificate. When creating a security token, the Credential Tokenizer creates a system context (TokenContext) that encapsulates the token type, the name of the principal, the service configuration, and the protocol binding that the security token supports.
There are two major objects in the Credential Tokenizer: SecurityToken and TokenContext. The SecurityToken is a base class that encapsulates any security token. It can be extended to implement username token (UsernameToken), binary token (_BinaryToken), and certificate token (X509v3CertToken). In this pattern, Username token is used to represent a user identity using Username Password. Binary tokens are used to represent a variety of security tokens that resemble a user identity using binary text form (such as Kerberos Tickets). Certificate tokens denote digital certificates issued to represent a user identity. An X.509v3 certificate is a common form of certificate token.
The TokenContext class refers to the system context used to create security tokens. It includes information such as the security token type, service configuration, and protocol binding for the security token. This class defines public interfaces only to set or get the security token information. TokenContextImpl is the implementation for TokenContext.
Client creates an instance of CredentialTokenizer.
CredentialTokenizer retrieves the service configuration and the protocol bindings for the target service request.
CredentialTokenizer retrieves the user credentials from SecurityProvider according to the service configuration. For example, it extracts the key information from an X.509v3 certificate.
CredentialTokenizer creates a security token from the user credentials just retrieved.
Upon successful completion of creating the security token, CredentialTokenizer returns the security token to Client.
Using a service provider interface approach to define the public interfaces for different security tokens will be more flexible and adaptive for different security tokens and devices. For example, certificate tokens may differ in vendor implementation. Developers can use the same public interfaces to support different credential token implementations and meet the requirements of different platforms and service providers without customizing the APIs for specific devices.
As with the Assertion Builder pattern, it is possible that the same client may be using the Credential Tokenizer to encapsulate user credentials as a security token in a SOAP message. To accommodate such use, developers can employ a custom service configuration look-up function (for example, refer to getProtocolBinding method in the SSOContext discussed in SSO Delegator pattern) to determine the data transport and application environment requirements. In this way, the common processing logic of the user credential processing and security token encapsulation can be reused.
Supports SSO. The Credential Tokenizer pattern helps in capturing authentication credentials for multifactor authentication. It also helps in using "shared state" (the "shared state" mechanism allows a login module to put the authentication credentials into a shared map and then passes it to other login modules) among authentication providers in order to establish single sign-on, where the Credential Tokenizer can be used for retrieving the SSO token and providing SSOToken on demand for requesting applications.
Provides a vendor-neutral credential handler. The Credential Tokenizer pattern wraps vendor-specific APIs using a generic mechanism in order to create or retrieve security tokens from security providers.
Enables transparency by encapsulating multiple identity management infrastructures. The Credential Tokenizer pattern encapsulates any form of security token as a credential token and thus eases integration and enables interoperability with different identity management infrastructures.
Example 12–6 shows a sample code excerpt for creating a Credential Tokenizer. The CredentialTokenizer creates an instance of TokenContextImpl, which provides a system context for encapsulation of the security token created. To create a security token, you need to define the security token type using the method setTokenType. Then you need to create the security token using the method createToken, which invokes the constructor of the target security token class (for example, UsernameToken).
Example 12–7 shows a sample implementation for the TokenContext. The TokenContextImpl is an implementation of the public interfaces defined in the TokenContext class. The former can provide methods to fetch the name of the principal (getPrincipal method) and the protocol binding for the security token (getProtocolBinding method).
Example 12–8 shows a sample implementation of the username token used in previous code examples (refer to Figure 12–15 and Figure 12–16). The UsernameToken class is an extension of the base class SecurityToken. It provides methods to define and retrieve information regarding the principal name, subject's IP address, subject's DNS address and the password.
*  should provide a getInstance() to fetch the instance.
The Credential Tokenizer pattern is essential to encapsulating user credentials and user information to meet authentication and non-repudiation security requirements. One important security factor for building reliable credential tokenizers is the identity management infrastructure and whether the keys are securely managed prior to the credential processing. The following are security factors and risks associated with the Credential Tokenizer pattern.
Username password token. Username password tokens are highly vulnerable to attacks by using a password dictionary.
X.509v3 certificate token. Certificate token is a reliable security token and is stronger than Username Password token. However, it may be susceptible to human error during the management of the distribution of digital certificates and the timely revocation of certificates.
Key management strategy. The security factor of key management strategy defines the process of generating key pairs, storing them in safe locations, and retrieving them. The generation of SAML assertion statements and signed SOAP messages using WS-Security is key management strategy. If the key management strategy and the infrastructures are not in place, the user credential token processing will be at risk.
Should we use username/password as a security token? Some security architects insist that the username/password pair is not secure enough and should not be used as a security token. To mitigate the potential risk of a weak password, security architects should reinforce strong password policies and adopt a flexible security token mechanism such as Credential Tokenizer to accommodate different types of security tokens for future extension and interoperability.
What other objects can be encapsulated as security token? You can embed different types of security tokens in the Credential Tokenizer, not just username/password or digital certificate. For example, you can embed binary security tokens, because they can be encapsulated as a SAML token for an authentication assertion statement. In addition, you can also add the REL token (which denotes the rights, usage permissions, constraints, legal obligations, and license terms pertaining to an electronic document) based on the eXtensible Rights Markup Language (XrML).
Secure Pipe. The Secure Pipe pattern shows how to secure the connection between the client and the server, or between servers when connecting between trading partners. In a complex distributed application environment, there will be a mixture of security requirements and constraints between clients, servers, and any intermediaries. Standardizing the connection between external parties using the same platform and security protection mechanism may not be viable.


You can locate the source media file (on the hard disk) for any clip in your library.
If you don't see the Libraries list, click the button at the bottom-left corner of the Browser.
In the Libraries list, select the event that contains the clip.
Choose File > Reveal in Finder (or press Shift-Command-R).
A Finder window opens, with the source media file selected.
You can also quickly find the source event clip for any clip in the Timeline. For more information, see Find a Timeline clip's source clip.


Getting noticed online is difficult. You can be a small fish in a very, very large pond. Despite your best efforts at building a great website with up-to-date technology, sometimes the only way to put yourselves in front of customers is to pay for advertising, like with PPC. But what do those three letters mean and how do you implement it? I'm glad you asked!
PPC stands for "Pay Per Click". If you buy an online advert that charges via this structure, you pay a fee each time a user clicks on the link to go to your website or landing page.
Google AdWords is an example of how these advertising campaigns can be run. The two most common methods it uses are sponsored search results (you'll see these with "Ad" next to them at the top of any search) or display ads such as banners that show on a website where the owner has opted to have Google advertising as well as their own content.
The tricky part here is that Google's click fees are higher the more popular a certain search term is. For example, the term "running shoes" is going to be extremely popular and therefore you will have to spend a lot of money to compete on that particular phrase.
To cut costs, marketers choose more specific terms that have still been shown to have high enough search traffic numbers to be worth your while. They will seek out niche keywords and ensure a good ROI (Return on Investment).
Clever online advertising campaigns entice people to land on specific pages, such as a product shopping page or a sign-up form that offers a freebie in return for their contact details. All these techniques take time to develop and the results must be measured so that campaigns can be tweaked for better results.
Understanding all the techniques out there is the job of a dedicated team of PPC management experts.
The secret is that you need to be focused on this area of online advertising for best results, and if you're too busy running your small business to have time to sit and analyse, tweak, and update your Google AdWords or other Pay-Per-Click campaigns, maybe you should get the experts (like hungrywolf®) in to do it for you!


text:
The United States Internal Revenue Tax System: Embracing All Internal ...
Od autorů: United States
(4) The calendar year 1894, or as the case may be for which the return is made, will be stated in figures in column 4. In order, however, that the character of the return may be more clearly identified, the collector will write in red ink across the top of the page upon which he begins the list of taxpayers who return on Form 365 the words " Personal income taxes," and also in red ink across the top of the page on which he begins the list of those who make returns on Form 366 the words " Income taxes of corporations, associations, and companies."
(5) In column 5 will be shown the gross amount of the income for the year as shown by Form 365 or 366, or, in the absence of these returns, as ascertained in the manner provided by law and the regulations of this department.
(6) In column 6 will be stated the aggregate of the deductions from the gross income authorized by law, and as set forth in the returns, Forms 365 and 366.
(7) In column 7 will be stated the net income for the year; that is to say, the taxable income which is acertained by taking the amounts reported in column 6 from the amounts reported in column 5.
(8) In column 8 will be entered the amount of tax at 2 per cent computed on the net income reported in column 7.
(9) In column 9 the collector will state the date of the return on Form 365 or 366, as the case may be, and whether true or false. He may use the letter "T"to indicate that the return is true, and the letter "F" that it is false.
If the return is false, he will also state in what its falsity consists. As the assessment of the penalty of 100 per cent added to the amount of the tax ascertained to be due is to be made in all cases of a willfully false or fraudulent list or return, it is necessary that the commissioner should be correctly informed on this point.
If the return is received after the first Monday in March the collector will state whether he has allowed further time on account of sickness or absence, and if so, for how many days, and whether for sickness or for absence.
Letters containing explanations concerning items reported for assessment should be inclosed with the list on which the items are reported, and reference should be made to such letters under the heading "Remarks by collectors;" otherwise the explanations may not be received until after the list is made up and the " Original" forwarded to the collector.
The three copies of Form 367, prepared as above stated, will be disposed of as follows: Two copies, the " Original" and " Duplicate," will, on or before April 15 following, be sent to the Commissioner of Internal Revenue with the returns on Forms 365 and 366 received by the collector from each person, corporation, and company reported on the list. The other copy of the list, the "Triplicate," will be filed in the office of the collector.
On the first day of May following, and on the first day of every succeeding month, the collector will forward a list on Form 368 of all delinquent income taxpayers against whom liability to tax is determined subsequently to the forwarding of the next preceding list, as also additional acertained liabilities against those who may have been reported on any previ
ous list.
The lists forwarded on the 15th day of April each year
will be known as " Annual Lists," and will contain the names only of those persons, corporations, companies, and associations liable to income tax for the calendar year next preceding. The annual list to be forwarded April 15, 1895, will be desig. nated as
6. The income tax list for 1894 for the district of Alabama," or for any other district, as the case may be, the list to be forwarded April 15, 1896, to be for 1895, and
SO on.
The commissioner will, immediately upon receipt of the lists on Form 367 from the collector, inquire, determine, assess, and enter in columns 11, 12, 13, and 14 thereof, the amounts ascertained to be assessable, including the amounts returned by the collector, if found correct. He will then enter the total of column 14 of the list for each district, respectively, at the foot of column 10 of the proper list on Form 23, specifying on the same line the list on Form 367, from which the amount is transferred, the amount so entered to be included in the receipt, Form 23, for the list to which the transfer is made.
It is intended that the amounts on the income tax list for 1894 shall be included in the receipt, Form 23.1, for the month of May, 1895, which will be forwarded to the collector about June 15, 1895, and that the receipts, including the amounts assessed on the monthly lists on Form 368, will be forwarded with the lists, Forms 23 and 368, monthly, as heretofore in the case of Form 23.
Monthly report of assessed income taxes on Form 368. Each collector who receives a list on Form 367 will make a report thereof monthly until the assessment is disposed of by payment or abatement; such report to be made on Form 368, in accordance with the instructions printed on said form. CHAPTER SEVENTEEN.
JOS. S. MILLER,
Commissioner of Internal Revenue. Approved :J. G. CARLISLE,
Secretary of the Treasury.
Note. — While this work was passing through the press, Congress passed a joint resolution (February, 1895), extending the time for making the income returns due on first Monday of March, 1895, to April 15, 1895, and making some other amendments to the income tax law. The joint resolution will be found in the Appendix.
REPEALED INCOME TAX LAWS.
gent funds.
Sec. 116. Annual income tax imposed.
and insurance companies, and 117. Sources of income to be included additions to surplus or contin
in estimate, and deductions al-
lowed.
121. Returns by banks. 118. By whom returns are to be made. 122. Tax on dividends and interest on
Penalties for neglect to make or bonds of railroad, canal, turnmaking false returns.
pike, and slack-water compaAppeals.
nies, and on profits carried to 119. When and how long tax is to be a fund, or used for construction. levied, and when payable.
Returns to be made. 120. Tax on dividends of banks, trust 123. Tax on salaries of United States
companies, savings institutions, officers.
The act of August 5, 1861, imposed a direct tax and a tax on incomes, but the income portion of the act never took effect. The first income law under which any tax was collected was the act of July 1, 1862. Under this act the tax was 3 per cent on incomes over $600 and not over $10,000; over $10,000, 5 per cent. Act of March 3, 1865, over $600 and not over $5,000, 5 per cent; over $5,000, 10 per cent on excess over $5,000. Act of March 2, 1867, over $1,000, 5 per cent. Act July 14, 1870, over $2,000, 21 per cent. No income tax was collected under the act of June 30, 1864, as it was amended by the act of March 3, 1865, before it became collectible, but the numerical order of the sections of the act of June 30, 1864, was preserved through all the subsequent amendments until the act of July 14, 1870. The income tax expired with the assessment in 1870 of the income of 1869, according to the limitation contained in Sec. 119, but was reimposed with some variations, and made applicable to the incomes of 1870 and 1871, by the act of July 14, 1870.
The numbers of the sections given below are those of the act of June 30, 1864, the numbers and dates of the amendatory sections being given in the margins.
Act March 2, 1867, Sec. 13. Income tax to be assessed annually.
Act of June 30, 1864, as amended by the acts of July 13,
1866, and March 2, 1867. Sec. 116. And be it further enacted, That there
shall be levied, collected, and paid annually upon the gains, profits, and income of every person residing in the United States, or of
any citizen of the United States residing abroad, whether derived from any kind of property, rents, interest, dividends, or salaries, or from any profession, trade, employment, or vocation, carried on in the United States or elsewhere, or from any other
source whatever, a tax of five per centum on the amount so derived over one thousand dol
lars, and a like tax shall be levied, collected, and paid annually upon the gains, profits, and income of every business, trade, or profession carried on in the United States by persons residing without the United States and not citizens thereof. And the tax herein provided for shall be assessed, collected, and paid upon the gains, profits, and income for the year ending the thirty-first day of December next preceding the time for levying, collecting, and paying said tax.
Tax of five per
cent.
Exemption of
It is not competent for Congress, under the constitution of the United States, to impose a tax upon the salary of a judicial officer of a State. Collector v. Day, 11 Wall. 113.
The question, whether the income tax was a direct tax within the meaning of the constitution, elaborately discussed, and all the authorities reviewed, and the decision of the court stated as follows: "Our conclusions are, that direct taxes, within the meaning of the constitution, are only capitation


You are here: Home » Linux » How to configure NAT with iptables on a VPS.
NAT ( network-address-translation ) with iptables helps us in how to select the packets we want to mangle. We can easily configure NAT on a OpenVZ VPS by following the below steps.
Lets first consider a VPS in which NAT is not enabled. Trying to POSTROUTE from VPS throws you errors.
* Login to Node server.
Check vzcinfiguration file to find whether NAT is enabled or not.
Add NAT to the configuration file.
insert 'iptable_nat' on to the iptables modules.
* Now save the paraments for the VPS to which NAT has to be enabled.
VZID is VPS ID, replace it with the correct one.
*Test whether you are able to postroute the packets on VPS.


Late in N.Y., U.S. equity markets are ending mixed as recent gains are digested. The DJIA is poised to close above the symbolic 20,000 line. The yield on the 10-yr Note is ending at 2.51%. In forex trade, the EUR is mixed on its crosses while USD is up.


The book will help you understand the pros, cons, and core principles of functional programming in TypeScript. It will explain higher order functions, referential transparency, functional composition, and monads with the help of effective code examples. Using TypeScript as a functional programming language, you'll also be able to brush up on your knowledge of applying functional programming techniques, including currying, laziness, and immutability, to real-world scenarios.
By the end of this book, you will be confident when it comes to using core functional and reactive programming techniques to help you build effective applications with TypeScript.
Is TypeScript a functional programming language?
Remo H. Jansen lives in Dublin, Ireland, where he works as the managing director of Wolk Software Limited and as a part-time lecturer at CCT College Dublin. Remo is a Microsoft MVP and an active member of the TypeScript community. He is the author of Learning TypeScript 2.x, organizes the Dublin TypeScript and Dublin OSS meetups, writes a blog, and maintains some open source projects on GitHub. Remo is available for conference talks, independent consulting, and corporate training services opportunities.