与 IBM Security Access Manager 集成的 Identity Server 4 - CallbackPath
Identity Server 4 integrating with IBM Security Access Manager - CallbackPath
我想知道我应该设置哪个 uri 来将我们的 Idsrv4 与 Ibm SAM 提供程序集成。但是我不知道应该为CallbackPath
设置哪个uri
我们已经集成了外部Idsv,Google没有任何问题。但是我们目前停留在与IBM服务器的集成,因为我们不知道如何设置CallbackPath
这是我在 Startup.cs
中的代码
.AddOpenIdConnect("ibmsam", "Ibm Sam", options =>
{
options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
options.SignOutScheme = IdentityServerConstants.SignoutScheme;
options.Authority = "https://IbmUrl";
options.ClientId = "myClientId";
options.ClientSecret = "mySecret";
options.ResponseType = "id_token";
options.SaveTokens = true;
options.Scope.Add(IdentityServerConstants.StandardScopes.OpenId);
options.Scope.Add(IdentityServerConstants.StandardScopes.Email);
options.CallbackPath = "/signin-idsrv"; // <<--- what should I set here?
});
据我所知,不同的提供商有不同的 uris:
- 登录-google - Google
- signin-idsrv - 另一个身份服务器
- signin-aad - Azure Ad
所以,我想知道是否已经有一个预定义的 uri 可以与 ibm 服务器集成(例如 signin-ibmsam 等)。我在哪里可以看到 signin-xxx 的列表以及这些东西是如何工作的?
我试图在 IdentityServer4 github 源代码中找到它。但是我在任何地方都找不到这些 urls/paths 是如何定义的以及它们如何处理回调。
你能帮我在哪里找到这些路径的源代码吗?
我们是否应该创建一个新路径 (signin-ibmsam) 并实现我们自己的 CallbackPath
并处理回调、获取令牌、用户信息等...?
能否请您建议我如何实现它?
已更新答案
正如 Tore 回答的那样,只要在服务器中注册了相同的 url,我们就可以提供任何 url。
对于我的情况,我使用如下:
options.CallbackPath = "/signin-ibm";
并且我将完整的 url(例如 https://test.ttcg.com/signin-ibm, https://www.ttcg.com/signin-ibm)提供给了另一个在 OAuth 提供程序中注册这些 url 的团队。只要这两个在两个系统中匹配,它就可以工作。
AddOpenIdConnect 处理程序的回调路径默认为 /signin-oidc,您可以在 OpenIdConnectOptions class 的 source code 中找到。您的 IBM 服务器需要重定向回这个固定的 url。如果您需要自定义它,您可以随时使用以下方式进行设置:
options.CallbackPath = "/my-callback-path";
我想知道我应该设置哪个 uri 来将我们的 Idsrv4 与 Ibm SAM 提供程序集成。但是我不知道应该为CallbackPath
我们已经集成了外部Idsv,Google没有任何问题。但是我们目前停留在与IBM服务器的集成,因为我们不知道如何设置CallbackPath
这是我在 Startup.cs
中的代码.AddOpenIdConnect("ibmsam", "Ibm Sam", options =>
{
options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
options.SignOutScheme = IdentityServerConstants.SignoutScheme;
options.Authority = "https://IbmUrl";
options.ClientId = "myClientId";
options.ClientSecret = "mySecret";
options.ResponseType = "id_token";
options.SaveTokens = true;
options.Scope.Add(IdentityServerConstants.StandardScopes.OpenId);
options.Scope.Add(IdentityServerConstants.StandardScopes.Email);
options.CallbackPath = "/signin-idsrv"; // <<--- what should I set here?
});
据我所知,不同的提供商有不同的 uris:
- 登录-google - Google
- signin-idsrv - 另一个身份服务器
- signin-aad - Azure Ad
所以,我想知道是否已经有一个预定义的 uri 可以与 ibm 服务器集成(例如 signin-ibmsam 等)。我在哪里可以看到 signin-xxx 的列表以及这些东西是如何工作的?
我试图在 IdentityServer4 github 源代码中找到它。但是我在任何地方都找不到这些 urls/paths 是如何定义的以及它们如何处理回调。
你能帮我在哪里找到这些路径的源代码吗?
我们是否应该创建一个新路径 (signin-ibmsam) 并实现我们自己的 CallbackPath
并处理回调、获取令牌、用户信息等...?
能否请您建议我如何实现它?
已更新答案 正如 Tore 回答的那样,只要在服务器中注册了相同的 url,我们就可以提供任何 url。
对于我的情况,我使用如下:
options.CallbackPath = "/signin-ibm";
并且我将完整的 url(例如 https://test.ttcg.com/signin-ibm, https://www.ttcg.com/signin-ibm)提供给了另一个在 OAuth 提供程序中注册这些 url 的团队。只要这两个在两个系统中匹配,它就可以工作。
AddOpenIdConnect 处理程序的回调路径默认为 /signin-oidc,您可以在 OpenIdConnectOptions class 的 source code 中找到。您的 IBM 服务器需要重定向回这个固定的 url。如果您需要自定义它,您可以随时使用以下方式进行设置:
options.CallbackPath = "/my-callback-path";