@@ -11,72 +11,78 @@ redirect_from:
1111---
1212
1313Federation means that your IdentityServer offers authentication methods that use external authentication providers.
14-
15- If you offer a number of these external authentication methods, often the term * Federation Gateway* is used to describe
14+ When you offer a number of these external authentication methods, often the term * Federation Gateway* is used to describe
1615this architectural approach.
1716
1817![ Diagram showing the benefits of using a federation gateway] ( images/federation.svg )
1918
20- Generally, this architecture allows shielding your client applications from the complexities of your authentication
19+ ## Benefits Of A Federation Gateway
20+
21+ A federation gateway architecture shields your client applications from the complexities of your authentication
2122workflows and business requirements that go along with them.
2223
2324Your clients only need to trust the gateway, and the gateway coordinates all the communication and trust relationships
2425with the external providers. This might involve switching between different protocols, token types, claim types etc.
26+
27+ You may federate with other enterprise identity systems like Active Directory, Azure AD, or with
28+ commercial providers like Google, GitHub, or LinkedIn. Federation can bridge protocols, and use OpenID Connect (OIDC),
29+ OAuth 2, SAML, WS-Federation, or any other protocol.
30+
2531Also, the gateway can make sure that all claims and identities that ultimately arrive at the client applications are
2632trustworthy and in a format that the client expects.
2733
28- There are a number of scenarios where this approach is commonly used.
29-
3034## Multiple Authentication Methods For Users
3135
32- Maybe your users should have multiple options how they can sign-in/up, e.g.
36+ With a federation gateway, you can offer your users flexible sign-in options based on their context or preference:
3337
34- * username /password or a commercial provider like Google or Microsoft Account
35- * username /password or a commercial provider for customers, and Active Directory or Azure AD for employees
38+ * ** Consumer applications ** : Username /password or commercial providers like Google or Microsoft Account
39+ * ** Hybrid applications ** : Username /password or commercial providers for customers, and Active Directory or Azure AD for employees
3640
3741## Integration Of On-premise Products With Customer Identity Systems
3842
39- If you are building on-premise products, you have to integrate with a multitude of customer authentication systems.
43+ When building on-premise products, you have to integrate with a multitude of customer authentication systems.
4044Maintaining variations of your business software for each product you have to integrate with, makes your software hard
4145to maintain.
4246
4347With a federation gateway, you only need to adapt to these external systems at the gateway level, all of your business
4448applications are shielded from the technical details.
4549
46- ## Software-as-a-Service
50+ ## Software-as-a-Service (SaaS)
4751
48- It's very common to offer federation with your customers' authentication systems in SaaS scenarios. This way your
49- customers get single- sign-on to your applications without having to explicitly create accounts in your identity system.
52+ Federation is a common requirement in SaaS scenarios. It allows your customers' users to access your applications with
53+ single sign-on, using their existing corporate credentials without explicitly creating new accounts in your identity system.
5054
5155## Support For External Authentication Methods
5256
5357IdentityServer leverages the ASP.NET Core authentication infrastructure for communicating with external providers. This
54- means that every authentication system that is supported by ASP.NET Core, can also be used in the context of
55- IdentityServer. This includes support for commercial providers like Google, GitHub or LinkedIn (
56- and [ many more] ( https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers ) ) and any OpenID Connect,
57- SAML2p or WS-Federation based systems.
58+ means any authentication system supported by ASP.NET Core can be used with IdentityServer, including:
59+
60+ * Commercial providers like Google, GitHub, and LinkedIn ([ and many more] ( https://github.com/aspnet-contrib/AspNet.Security.OAuth.Providers ) )
61+ * OpenID Connect providers
62+ * SAML 2.0 systems
63+ * WS-Federation systems
5864
5965See the [ Integrating with External Providers] ( /identityserver/ui/login/external.md ) section for more details.
6066
6167## Home Realm Discovery
6268
63- The process of selecting the "best" authentication workflow for a user (especially when you have multiple authentication
64- methods) is called Home Realm Discovery (or HRD for short) .
65-
66- Since users are typically anonymous when they arrive at the gateway, you need some sort of hint to optimize the login
67- workflow, e.g.
68-
69- * you present a list of available authentication methods to the user. This might work for simpler scenarios, but
70- probably not if you have a lot of choices or if this would reveal your customers' authentication systems
71- * you ask the user for an identifier (e.g. email address) and have a way to infer the right external authentication
72- method from that id . This is a common technique for SaaS systems.
73- * the client application can give a hint to the gateway via a custom protocol parameter of IdentityServer's built-in
74- support for the ` idp ` parameter on ` acr_values ` . In some case the client already knows the right authentication
75- method, e.g. when your customers access your software via a customer-specific URL (
76- see [ here] ( /identityserver/reference/endpoints/authorize.md#optional-parameters ) ).
77- * you restrict the available authentication methods per client in the client configuration using the
78- ` IdentityProviderRestrictions ` property (
79- see [ here] ( /identityserver/reference/models/client.md#authentication--session-management ) )
80-
81- Every system is slightly different . Always start with the desired user experience, and then choose from the above
82- options (or combinations) to implement the required flow.
69+ Home Realm Discovery (HRD) is the process of selecting the most appropriate authentication workflow for a user,
70+ especially when multiple authentication methods are available .
71+
72+ Since users are typically anonymous when they arrive at the federation gateway, you need some sort of hint to optimize
73+ the login workflow. Such hint can come in many forms:
74+
75+ * You present a list of available authentication methods to the user. This works for simpler scenarios, but
76+ probably not if you have a lot of choices or if this would reveal your customers' authentication systems.
77+ * You ask the user for an identifier, such as their email address. Based on that, you infer the external authentication
78+ method . This is a common technique for SaaS systems.
79+ * The client application can give a hint to the gateway via a custom protocol parameter of IdentityServer's built-in
80+ support for the ` idp ` parameter on ` acr_values ` . In some cases, the client already knows the appropriate authentication
81+ method. For example, when your customers access your software via a customer-specific URL
82+ ( see [ here] ( /identityserver/reference/endpoints/authorize.md#optional-parameters ) ), you can present a subset of
83+ available authentication methods to the user, or even redirect to a single option.
84+ * You restrict the available authentication methods per client in the client configuration using the
85+ ` IdentityProviderRestrictions ` property ( see [ here] ( /identityserver/reference/models/client.md#authentication--session-management ) ).
86+
87+ Every system has unique requirements . Always start by designing the desired user experience, then select and combine
88+ the appropriate HRD strategies to implement your required flow.
0 commit comments