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支持使用第三方登录来验证用户和链接帐户。
单一登录服务支持不同的身份提供者(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);
之后,您可以使用云目录中所定义的用户身份登录。有什么不清楚的可以在截图中查看更多细节。