我是OpenID Connect和Identity Server的新手,我尝试使用IdentityServer3.Samples MVC身份验证项目中的示例代码设置测试服务器实例。问题是我不知道在那里设置了.well已知的配置端点,我不确定如何设置它。我已经做了很多搜索如何做到这一点,但空洞。我也跟随了Dylan Beattie的this article(减去ngrok),但似乎忽略了示例项目中没有.well-已知端点的事实。如何设置.well-known / openid-configuration端点?
答案 0 :(得分:1)
发现端点在IdentityServer3中实现:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find
if (options.Endpoints.EnableDiscoveryEndpoint)
{
config.Routes.MapHttpRoute(
Constants.RouteNames.Oidc.DiscoveryConfiguration,
Constants.RoutePaths.Oidc.DiscoveryConfiguration,
new { controller = "DiscoveryEndpoint", action = "GetConfiguration" });
这是DiscoveryEndpoint控制器WebApiConfig.cs
/// <summary>
/// GET
/// </summary>
/// <returns>Discovery document</returns>
[HttpGet]
public async Task<IHttpActionResult> GetConfiguration()
{
Logger.Info("Start discovery request");
var baseUrl = Request.GetIdentityServerBaseUrl();
var allScopes = await _scopes.GetScopesAsync(publicOnly: true);
var showScopes = new List<Scope>();
答案 1 :(得分:0)
寻找使用IdentityServer的.well-known / openid-configuration的用户,不必修改以上答案,而是需要查看在Startup类中定义的映射文件夹中。
例如:
app.Map(“ / core”,coreApp =>
这会更改您为其他人发布的根目录,例如[website] /core/.well-known/openid-configuration
这最初对我来说并不明显,因为我错误地认为根路径将被假定为所使用服务的一致性。