我很想用我的 .NET 6 应用程序配置 OAuth,但我很挣扎
我首先想知道什么是最适合我的用例的 OpenApiOAuthFlow,如果我不想在 Microsoft Identity、Azure AD 或 Facebook 等身份提供者上注册我的应用程序?
如果需要,当我的 API 处于开发和暂存状态时,我应该提供什么网站 URL?
我为 ClientID 和 ClientSecret 使用了随机值——有没有办法在不注册我的应用程序的情况下检索这些值? authorizationUrl 和 tokenUrl 中的 ID 是什么?
这是我的相关代码:
c.AddSecurityDefinition("oauth2", new OpenApiSecurityScheme
{
Type = SecuritySchemeType.OAuth2,
Flows = new OpenApiOAuthFlows()
{
Implicit = new OpenApiOAuthFlow()
{
AuthorizationUrl = new Uri("https://login.microsoftonline.com/7493ef9e-db24-45d8-91b5-9c36018d6d52/oauth2/v2.0/authorize"),
TokenUrl = new Uri("https://login.microsoftonline.com/7493ef9e-db24-45d8-91b5-9c36018d6d52/oauth2/v2.0/token"),
Scopes = new Dictionary<string, string>
{
{"Scope", "Reads the Weather forecast"}
}
}
}
});
c.AddSecurityRequirement(new OpenApiSecurityRequirement()
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference
{
Type = ReferenceType.SecurityScheme,
Id = "oauth2"
},
Scheme = "oauth2",
Name = "oauth2",
In = ParameterLocation.Header
},
new List<string>()
}
});
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/1.0/swagger.json", "Weather Forecast API 1.0");
//c.RoutePrefix = string.Empty;
c.OAuthClientId("ff11294f-2cc9-18d4-bdf6-6cf26670316a");
//c.OAuthClientSecret("hXUedE-fItzZi8-7Mua4v9MxiTGx2--R_B");
//c.OAuthUseBasicAuthenticationWithAccessCodeGrant();
});