教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理

Posted Pivotal

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理相关的知识,希望对你有一定的参考价值。


​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理
​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理

希望身份管理能正常工作就好,不应该花费大量时间去弄明白如何向授权用户提供安全、无障碍的访问权限。

​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理


这便是PCF单点登录(SSO)的目标。该服务可提供联合身份供应者来协助开发人员快速保护其应用。采用OAuth和OpenID Connect等标准,为身份管理带来了简便性和一致性。


SSO 1.5(现称为GA)极大地简化了应用开发人员使用云身份管理供应者保护应用的流程。在本教程中,我们将向您介绍如何将SSO和AzureAD结合使用以实现这一目标。

首先,我们来探讨一下为什么要将Azure AD和PCF的单点登录结合使用。

​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理

什么是PCF单点登录(SSO)?

​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理


单点登录(SSO)服务是包含在Pivotal Cloud Foundry中的身份服务代理功能块。SSO支持提供本地身份验证、联合单点登录,授权部署在PCF上的应用和API。单点登录服务在后台使用Cloud Foundry UAA作为核心的身份提供者、授权服务器和安全口令服务器(STS)。


​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理

客户为什么使用PCF的SSO?

​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理


有以下三种场景:

场景1:扩展现有的身份管理工具以支持遗留的工作负载和云原生应用。

- SSO如何帮助:SSO可将任意企业身份提供者转化为基于标准的的Auth 2.0和OpenID Connect口令身份验证和授权供应用使用。 您可以在构建云原生应用的同时延长现有基础架构的使用寿命。

​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理

场景2:企业对身份的监管令应用开发人员不胜其烦。不同的团队负责不同的环节,每组采用的流程也完全不同,故而有太多的的繁文缛节要处理。

- SSO如何帮助:SSO是自助服务式的;开发人员可以自行处理身份问题,以便更好地满足自身需求。例如,开发人员可以通过直接流向其应用的清单自动执行身份配置和API权限。其最终效果是周转时间的大幅缩短,从几周缩短到了几小时!

​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理

场景3:管理身份管理系统是一项成本高昂且吃力不讨好的任务。因此,管理员总会找到一个否决云原生计划的理由。

- SSO如何帮助:SSO可通过直观的控制面板简化服务计划和IdM系统的管理工作,使IT员工的态度从“拒绝”转为“接受”。运维人员可以使用这些工具来管理多租户服务计划,根据您的需求将身份与策略分割开来。有位客户曾使用SSO为几百名开发人员的身份提供支持,同时还可支持PCF,而只需三个运维人员就能做到这些。 扩展服务变得轻而易举,只需点击按钮即可完成,无需停机!

​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理


现在,我们已经明确了企业使用SSO的方法。下面,我们来深入学习该教程!

Azure AD:

社交与企业账号登录的理想之选


出于以下两种原因之一,您希望将身份与Azure AD集成:


1. 消费者应用。消费者想使用Azure AD登录社交账号。一旦开发人员在Microsoft应用注册门户上注册后,就可以使用OpenID Connect对Microsoft 帐户进行集成。这样一来,消费者就可以使用共同的用户集,比如Outlook.com、Hotmail、Office 365、OneDrive、Skype、Xbox和Windows。

2. 为了您的企业。更常见的原因是,您希望将企业应用从私有数据中心迁移至Azure。

Pivotal SSO服务均支持这两种情况。

我们提供SAML对Azure AD的整合已经有一段时间了。现在,我们又对SSO进行了升级,也提供OpenID Connect — 一种易于设置、维护和故障排除的方法。在本教程中,我们将介绍启动OpenID Connect集成及运行PCF的SSO所需的步骤。

剖析OpenID Connect (OIDC)流程


在OpenID Connect流程中,SSO服务是依赖方(RP)。我们会将其注册为Azure的依赖方客户端,即本示例中的身份提供者(IdP)。


在相关OpenID Connect流程的基础上,RP对IdP的“授权”和“口令”端点发起调用。用户通过登录进行IdP身份验证。IdP还将提示用户授权给RP。完成这些步骤后,系统会将OpenID Connect Id的口令从IdP发送至RP,以完成OIDC登录流程。


​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理


为了完成上述设置,我们将SSO注册为Azure的RP。我们还将通过SSO服务计划配置应用以启动OIDC流程。

使用Azure客户端创建身份提供者


首先,我们创建一个服务计划。然后,将这个服务计划分配到我们的域名,这是我们在PCF中运行应用的指定位置。在下面的图片中,我们已完成了计划创建,并进行了相应的分配。


​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理


我们从这里开始配置服务计划,这样Azure便可成为OIDC提供者。我们首先创建一个新的身份提供者,进入如下所示的身份提供者的配置页面。


​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理
​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理
​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理


让我们给身份提供者起一个简单的名字,因为它将用作Azure和SSO服务计划之间后端通信中URL的一部分。

现在,我们来添加描述,然后选择OpenID Connect(不是“SAML”,也不是“LDAP”)作为提供者类型。接下来,我们取消选中“启用发现”,因为我们需要输入其他信息与Azure进行集成。以下是你将看到的页面:


​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理


现在,我们停下来看看这个页面。您会发现需要填写许多内容,因此我们需要从Azure收集这些信息。这需要我们做两件事:

  1. 确定Azure租户的OpenID Connect发现端点

  2. 在Azure中注册一个OAuth客户端

我们暂时离开这个页面,获得所有所需信息后再回来完成这些配置。打开新的页面。

我们将使用新的页面来获取发现端点。此URL遵循标准惯例,格式为https://login.microsoftonline.com/{TENANT-NAME}/.well-known/openid-configuration。在URL中输入公司的Azure用户名(通常位于Azure AD域名下),将链接粘贴到浏览器中,按下回车键。然后,您将看到类似于下图所示的输出内容:


​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理


解析上述信息,我们便可完成“创建身份提供者”页面上的内容。继续填写以下值:

  • “授权端点URL” (authorization_endpoint)

  • “口令端点URL” (token_endpoint)

  • “令牌密钥” (jwks_ur)

  • “发行人” (issuer)

  • “用户信息端点URL” (userinfo_endpoint)

对我们选择id token 作为响应类型。请注意,随着时间的推移,这些值在Azure端可能发生变化,因此请务必从租户的知名端点获取最新的实时信息。

这个步骤完成以后,我们的配置现如下所示:


​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理


接下来,我们打开一个新的页面,进入Azure门户帐户以注册OAuth客户端。这些操作在Azure AD里称为“应用注册”。您会看到,我们已将客户端配置为“网页应用/API”类型的应用。我们将使用“应用ID”值作为SSO配置中的“RP OAuth客户端ID”。


​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理


我们也会创建一个客户端密钥,用作SSO配置中的“     RP OAuth客户端密钥”。


​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理


最后,我们来配置回调URL。由于我们简化身份提供者的名称,我们可以使用SSO计划中的身份验证域URL (https://example.login.mydomain.com)和/login/callback/{origin}端点(/login/callback/azure),其中“origin”值是身份提供者名称的小写形式。


​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理


这样,我们便完成了Azure中的配置!

现在,我们返回去,在Pivotal Cloud Foundry中输入SSO配置的客户端ID和密码。


​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理


最后,我们要将Azure的“unique_name”的值映射到SSO中的用户名,以保持Azure和SSO间用户名的一致性。


​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理


现在,我们可以保存身份配置,然后开始配置应用以使用Azure进行登录!


​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理


创建应用和登录


我们首先将SSO服务计划添加至Pivotal Cloud Foundry中应用运行的空间。该操作将创建一个服务实例。


​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理


接下来,我们将服务与应用绑定。在此示例中,我们拿使用Spring Security的Spring Boot应用作为身份示例应用。该应用已具备OAuth感知功能。


​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理


我们将SSO连接器作为Spring Boot的依赖项。应用会自动读取PCF的环境变量,并与SSO集成。开发人员可免费使用这项功能。


​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理


最后,我们在SSO控制面板上配置该应用以使用Azure AD,而不是Cloud Foundry的内部UAA用户存储。


​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理


现在,我们在登录的时候会被引导到Azure登录!


​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理


我们已成功使用Azure帐户完成身份验证!SSO将发送ID口令来识别已经通过Azure(作为外部身份提供者)身份验证的用户。详情如下:


​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理


如我们所示,您可以使用Azure和SSO为用户配置登录,仅需几个步骤便可完成。最棒的是,当在Cloud Foundry中添加更多应用时,您可以在SSO计划中重复使用相同的配置!PCF的SSO可随着您的云原生应用组合的发展,确保您的应用和API的安全性。


开发人员喜闻乐见:PCF的SSO可与Spring Boot和Steeltoe集成


最后一个要思考的问题:您想开发什么,是供客户使用的新功能,还是身份管理系统?


当您使用Spring Boot和Steeltoe时,这些框架可自动执行安全性和配置运行时。如此一来,因为您的代码已具备OAuth感知能力,您的应用便可与身份提供者轻松集成。当您将应用推送到Pivotal Cloud Foundry之后,Pivotal的SSO服务便从此处开始接管。

这些安全抽象可节省您的时间和精力。额外的好处是,如果这次你完成了这些操作,即使您需要切换到了另一个身份提供者,也不需要重新设置。

专注于代码,让SSO为您处理身份问题!


​ 教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理

关于作者

Tian Wang是Pivotal SSO(单点登录)服务领域的产品经理,与开源Cloud Foundry上的UAA(用户帐户和身份验证服务)身份团队密切合作。在加入Pivotal之前,他曾担任身份和访问管理领域的安全顾问,帮助“全球500强”和“财富500强”公司处理身份策略、路线图和实施方面的问题。他拥有加州大学伯克利分校工商管理学士和计算机科学学士学位,是认证信息系统安全专家(CISSP)。

 


更多技术信息请访问: https://pivotal.io/cn




以上是关于教程:如何借助Azure AD和PCF的单点登录(SSO)简化云原生身份管理的主要内容,如果未能解决你的问题,请参考以下文章

如何搭建一套Azure AD与ADFS集成身份的环境

Office 365实现单点登录系列—使用Azure AD Connect 进行目录同步

如何从应用程序而不是 Azure AD 中注销?

使用 Azure AD 作为身份提供者的 Azure ADB2C 单点注销

JavaWeb基于AD域的单点登录怎么做?

Azure AD:访问令牌中缺少角色声明