您可以向托管IdentityServer4的應用程式添加更多API端點。 您通常希望通過它們所托管的IdentityServer實例來保護這些API。這不是問題。只需將令牌驗證處理程式添加到主機(請參閱 "此處" ): 在您的API上,您需要添加 屬性並顯式引用您要使用的身份驗證方案(在此示例中 , ...
您可以向托管IdentityServer4的應用程式添加更多API端點。
您通常希望通過它們所托管的IdentityServer實例來保護這些API。這不是問題。只需將令牌驗證處理程式添加到主機(請參閱此處):
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
// details omitted
services.AddIdentityServer();
services.AddAuthentication()
.AddIdentityServerAuthentication("token", isAuth =>
{
isAuth.Authority = "base_address_of_identityserver";
isAuth.ApiName = "name_of_api";
});
}
在您的API上,您需要添加[Authorize]
屬性並顯式引用您要使用的身份驗證方案(在此示例中token
,您可以選擇您喜歡的任何名稱):
public class TestController : ControllerBase
{
[Route("test")]
[Authorize(AuthenticationSchemes = "token")]
public IActionResult Get()
{
var claims = User.Claims.Select(c => new { c.Type, c.Value }).ToArray();
return Ok(new { message = "Hello API", claims });
}
}
如果要從瀏覽器調用該API,則還需要配置CORS(請參閱此處)。
43.1 發現
如果需要,您還可以將端點添加到發現文檔中,例如:
services.AddIdentityServer(options =>
{
options.Discovery.CustomEntries.Add("custom_endpoint", "~/api/custom");
})