Google Apps提供OpenID API,允许最终用户使用其Google Apps用户帐户安全地登录第三方网站。
我想提供类似的功能 - 即我希望我的网站用户能够使用OpenID使用他们的Salesforce帐户进行身份验证。
Salesforce是否提供类似的API /功能?我查看了文档并看到了OpenID Connect API的提及,但这似乎还处于开发的早期阶段。我还检查了Salesforce的身份提供商功能,但这似乎更适合SSO场景(虽然不太确定 - 如果我错了请纠正我)。
答案 0 :(得分:6)
作为此问题的更新,因为我正在寻找相同的功能,Salesforce现在可以充当openid连接提供程序。有关更多信息,请参阅此处:
https://developer.salesforce.com/page/Inside_OpenID_Connect_on_Force.com
答案 1 :(得分:1)
(这是支持open id connect之前的旧答案)
他们还不支持openid connect。在此期间,请查看“web服务器”oauth 2.0流程,并使用“id”范围获取用户的ID。
http://wiki.developerforce.com/page/Digging_Deeper_into_OAuth_2.0_on_Force.com
在oauth协议级别,不能保证此id属于用户,或者它是唯一且不变的,但人们仍然使用这种id进行身份验证。这基本上是openid connect的工作原理; openid connect只是将它正式化并添加了一些额外的验证。
答案 2 :(得分:0)
是的,SalesForce支持OpenIdConnect,这里是SalesForce developer guide。
您可以找到SalesForce身份验证提供程序here的实现。
只需安装AspNet.Security.OAuth.Salesforce
nuget package并将此代码添加到Startup.cs
services.AddAuthentication()
.AddSalesforce(options =>
{
options.SignInScheme = "Salesforce";
options.ClientId = "<insert here>";//client id on salesforce connected app
options.ClientSecret = "<insert here>";//client secret on salesforce connected app
});
我使用IdentityServer4 here
实现了它