Authentication in Loopback Applications Against Bluemix(在针对Bluemix的Lookback应用中进行身份认证)

Authentication in Loopback Applications Against Bluemix

原文作者:Niklas Heidloff
原文地址:https://dzone.com/articles/authentication-in-loopback-applications-against-bl
译者:@从流域到海域
译者博客:blog.csdn.net/solo95
本文同样刊载于腾讯云+:
https://cloud.tencent.com/developer/article/1016031

在针对Bluemix的Lookback应用中进行身份认证


Node.js API框架LoopBack支持使用第三方登录来验证用户和链接帐户。

从GitHub获取代码。

单一登录服务支持不同的身份提供者(identity provider)。例如,企业客户通常使用的SAML。如果客户没有SAML身份提供者(provider),他们可以先将SAML协议外部化成遵从LDAP版本3标准的目录,然后在目录中安装Identity Bridge。在下面的示例中,我使用了一些测试用户的云目录,但是使用SAML时应用程序代码是相同的。

LoopBack利用passport通过loopback-component-passport模块来支持第三方登录。GitHub上的示例展示了如何通过Facebook,Google和Twitter进行身份验证。

为了验证单点登录服务,您需要使用passport-idaas-openidconnect模块。棘手的部分是做正确的配置,因为它的使用文档内容不够详细。下面是代码的关键部分。为了从Bluemix上下文中读取凭据(credentials),提供程序不是在静态属性文件中定义的,而是以编程方式定义的.

var options = {
 "provider": "ibm",
 "module": "passport-idaas-openidconnect",
 "strategy": "IDaaSOIDCStrategy",
 "clientID": ssoConfig.credentials.clientId,
 "clientSecret": ssoConfig.credentials.secret,
 "authorizationURL": ssoConfig.credentials.authorizationEndpointUrl,
 "tokenURL": ssoConfig.credentials.tokenEndpointUrl,
 "scope": "openid",
 "response_type": "code",
 "callbackURL": "/auth/ibm/callback",
 "skipUserProfile": true,
 "issuer": ssoConfig.credentials.issuerIdentifier,
 "authScheme": "openid connect",
 "authPath": "/auth/ibm",
 "session": true,
 "failureFlash": true
};
passportConfigurator.configureProvider("ibm", options);

之后,您可以使用云目录中所定义的用户身份登录。有什么不清楚的可以在截图中查看更多细节。

posted @ 2018-01-08 17:32  从流域到海域  阅读(59)  评论(0编辑  收藏  举报