gpt4 book ai didi

asp.net - 生成个人访问 token 以调用 Azure Web Api (OAuth)

转载 作者:行者123 更新时间:2023-12-03 01:07:59 24 4
gpt4 key购买 nike

我有一个 ASP.NET Web API,并在 Azure Active Directory 下注册了一个新应用程序。

Web API 源代码中的ConfigureAuth 就是这样的。

public void ConfigureAuth(IAppBuilder app)
{
// Configure the db context and user manager to use a single instance per request
app.CreatePerOwinContext(ApplicationDbContext.Create);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);

// Enable the application to use a cookie to store information for the signed in user
// and to use a cookie to temporarily store information about a user logging in with a third party login provider
app.UseCookieAuthentication(new CookieAuthenticationOptions());
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

// Configure the application for OAuth based flow
OAuthOptions = new OAuthAuthorizationServerOptions
{
AllowInsecureHttp = false,
TokenEndpointPath = new PathString("/Token"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
Provider = new ApplicationOAuthProvider("self"),
AuthenticationType = "LocalBearer"
};

// Enable the application to use bearer tokens to authenticate users
app.UseOAuthBearerTokens(OAuthOptions);
}

另一方面,我有一个命令行应用程序,可以访问 Web API 并向其询问一些数据。

从命令行,我无法使用用户凭据登录(这是一项要求),因此我想生成一个可能在一两年内到期的个人访问 token ,并使用该个人访问 token 构建我的 API 调用。如果可能的话,我可以避免使用用户名/密码登录来生成 token 。

有关于这种情况的任何文档吗?如何为我的控制台应用程序生成个人访问 token 以连接到 Azure 中托管的 Web API?

最佳答案

so I would like to generate a Personal Access Token that expires maybe in a year or two and construct my API call with that Personal Access Token

据我所知,Azure AD 颁发的访问 token 的默认生命周期为 1 小时,在 Azure AD 中配置 token 生命周期后最长为 1 天。

If that's possible then I can avoid to sign in with a username/password to generate a Token.

您可以使用 OAuth 2.0 客户端凭据流从 Azure AD 获取 token 来访问 protected API 资源,然后您的控制台应用程序将作为应用程序身份运行,而不是作为用户身份运行。请点击here有关守护程序或服务器应用程序到 Web API 身份验证方案的更多详细信息,请单击here用于代码示例。如果访问 token 过期,ADAL 会帮助您续订。

关于asp.net - 生成个人访问 token 以调用 Azure Web Api (OAuth),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42988883/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com