Tag: oauth 2.0

ADAL – AcquireTokenSilentAsync失败(Azure Active Directory身份validation库)

我编写了一个新的应用程序来通过其余的API访问办公室数据,因此我想使用新的身份validation模型(V2.0端点) v2.0 endpoit有什么不同 我可以通过电话获得令牌 private static string[] scopes = { “https://outlook.office.com/mail.read”, “https://outlook.office.com/calendars.read” }; public async Task SignIn() { … SNIP Uri authUri = await authContext.GetAuthorizationRequestUrlAsync(scopes, null, clientId, redirectUri, new UserIdentifier(“contoso@foo”, UserIdentifierType.RequiredDisplayableId), null); return Redirect(authUri.ToString()); } authContext.AcquireTokenByAuthorizationCodeAsync(authCode, redirectUri, credential, scopes) 问题是第二次调用 public async Task SignIn() { … SNIP var authResult = authContext.AcquireTokenSilentAsync(scopes, clientId, new UserIdentifier(“contoso@foo.ch”, UserIdentifierType.RequiredDisplayableId)) […]

如何使用OAuth 2 – OAuth 2 C#示例

我必须弄清楚如何使用OAuth 2才能使用Deviantart api。 我得到了client_id和client_secret部分 这里是他们提供的信息 端点 使用OAuth 2.0向我们进行身份validation所需的唯一信息是您的应用的client_id和client_secret值,以及下面显示的端点。 OAuth 2.0草案10: 自由软件 url : htt OAuth 2.0草案15: 自由软件 url : htt 安慰剂电话 依赖OAuth 2.0身份validation的第一个API调用是安慰剂调用。 在进行可能很长的真实API调用(例如文件上载)之前,检查访问令牌是否仍然有效非常有用。 您可以使用以下端点之一调用它(必须提供访问令牌): https://www.deviantart.com/api/draft10/placebo https://www.deviantart.com/api/draft15/placebo 您需要使用与您获得令牌的OAuth 2.0草案相对应的端点。 它总是返回以下JSON: {status: “success”} 我在网上搜索过,找到了这个很棒的库。 DotNetOpenAuth v4.0.1 http://www.dotnetopenauth.net/ 添加它作为参考,但不知道下一步该做什么。 即使是一个非常小的例子对于如何使用OAuth 2也非常有用 using DotNetOpenAuth; using DotNetOpenAuth.OAuth2; 这里是deviantart提供信息的页面 http://www.deviantart.com/developers/oauth2 好了,到目前为止,我得到了什么,但没有工作 public static WebServerClient CreateClient() { var desc = GetAuthServerDescription(); […]

OWIN AuthenticationOptions在运行时在mvc5应用程序中更新

嗨! 情况如下: 我在iis7上有一个带有Identity2的MVC5应用程序,可以为多个网站提供服务。 主机名是某些网站的关键。 site.com,anothersite.com等 我决定在我的所有网站上使用google进行外部登录,并且每个网站都应该是具有个人clientid和clientsecret的google客户端。 例如: site.com – clientid = 123123,clientsecret = xxxaaabbb anothersite.com – clientid = 890890,clientsecret = zzzqqqeee 但有一点问题 – 在应用程序的开始设置AuthenticationOptions ,我没有找到任何方法在运行时替换它。 所以,在阅读为MVC 5创建自定义OAuth中间件和编写Owin身份validation中间件后,我意识到我应该覆盖AuthenticationHandler.ApplyResponseChallengeAsync()并将这段代码放在这个方法的开头: Options.ClientId = OAuth2Helper.GetProviderAppId(“google”); Options.ClientSecret = OAuth2Helper.GetProviderAppSecret(“google”); 我决定只使用谷歌,所以我们将谈论谷歌中间件。 AuthenticationHandler AuthenticationMiddleWare.CreateHandler()返回AuthenticationMiddleWare.CreateHandler() ,在我的例子中,它们是GoogleOAuth2AuthenticationHandler和GoogleOAuth2AuthenticationMiddleware 。 我在http://katanaproject.codeplex.com/上找到了GoogleOAuth2AuthenticationMiddleware并将其GoogleOAuth2AuthenticationMiddleware我的项目中 public class GoogleAuthenticationMiddlewareExtended : GoogleOAuth2AuthenticationMiddleware { private readonly ILogger _logger; private readonly HttpClient _httpClient; public GoogleAuthenticationMiddlewareExtended( […]

AspNet.Security.OpenIdConnect.Server。 刷新令牌

据我所知,ASOS支持开箱即用的刷新令牌。 要获取刷新令牌,我需要将offline_access范围添加到我的令牌请求中。 但他们在哪里储存? 如何更改令牌的到期日期或将其删除? 如何确定创建哪个用户刷新令牌?

Localhost上的ASP.NET MVC Microsoft Live帐户身份validation

我创建了一个空白的新ASP.NET MVC站点。 我在https://account.live.com/developers/上设置了一个应用程序端点,如下所示: API设置: http : //i.imgur.com/bIoV3x9.png 应用程序设置和代码隐藏: http : //i.imgur.com/P3KFyhV.png 我尝试启动我的网站,连接到https://localhost:44300/ ,点击“登录”,然后点击“Microsoft”,我得到一个页面,上面写着: 微软帐户 我们无法完成您的请求 Microsoft帐户遇到技术问题。 请稍后再试。 但它重定向到我的URL是: https://login.live.com/err.srf?lc=1033#error=invalid_request&error_description=The%20provided%20value%20for%20the%20input%20parameter%20’redirect_uri’%20is%20not%20valid。%20The% 20预期%20value%20is%20’https : //login.live.com/oauth20_desktop.srf’%20或%20a%20URL%20which%20匹配%20%20redirect%20URI%20注册%20for%20this%20client%20应用 我相信redirect_uri无效。 期望值是oauth20_desktop.srf的一些URI。 我不知道世界上到底发生了什么/问题是什么。 任何人都可以了解我必须做些什么来测试Microsoft帐户登录到我的localhost运行的MVC站点?

用于用户管理的Identity Server和web api

我正在为我的项目使用Identity Server3,我目前有一个网站和api受Id服务器保护,这工作正常但是因为我将用户存储在Id Server数据库中我无法真正更改任何用户的数据从网站上更改个人资料图片或任何索赔值。 为了解决这个问题,我正在考虑在IdServer之上创建API,这个API将管理用户,更改密码,检索用户或更改与用户相关的任何内容,我想在示例项目上创建此API我有我的IdServer使用Owin映射。 现在我在/身份路线中有我的idServer public class Startup { public void Configuration(IAppBuilder app) { Log.Logger = new LoggerConfiguration().MinimumLevel.Debug().WriteTo.Trace().CreateLogger(); app.Map(“/identity”, idserverApp => { var efConfig = new EntityFrameworkServiceOptions { ConnectionString = “IdSvr3Config” }; var options = new IdentityServerOptions { SiteName = “Identity server”, IssuerUri = ConfigurationManager.AppSettings[“idserver:stsIssuerUri”], PublicOrigin = ConfigurationManager.AppSettings[“idserver:stsOrigen”], SigningCertificate = Certificate.Get(), Factory = Factory.Configure(efConfig), AuthenticationOptions […]

与Google的WPF应用程序身份validation

我在OAuth中找到了许多不同的解决方案,并且有一些库或纯粹的请求( https://github.com/googlesamples/oauth-apps-for-windows )。 但是,没有一个解决方案看起来像我真正需要的解决方案。 目前,我的应用程序使用自己的数据库供用户使用WCF服务请求(使用用户名和密码)登录。 但是,所有用户都使用Google帐户创建了域名电子邮件,因此我想添加另一个“登录Google”按钮,这样可以确保用户也可以使用他的Google电子邮件密码对登录。 我不需要返回令牌以供进一步使用等。 在WPF / C#桌面应用程序中实现此function的最简单方法是什么?

OWIN OpenID连接授权无法授权安全控制器/操作

我正在开发一个项目,其中第三方提供商将充当基于Oauth2的授权服务器。 一个基于Asp.net MVC 5的客户端,它将用户发送给授权服务器进行身份validation(使用登录/密码),auth服务器将一个访问令牌返回给MVC客户端。 将使用访问令牌对资源服务器(API)进行任何进一步调用。 为此,我使用的是Microsoft.Owin.Security.OpenIdConnect和UseOpenIdConnectAuthentication扩展。 我能够成功重定向并从auth服务器获取访问令牌,但客户端没有创建身份validationCookie。 每次我尝试访问安全页面时,都会获得带有访问令牌的回调页面。 我在这里想念的是什么? 我目前的代码如下。 安全控制器动作: namespace MvcWebApp.Controllers { public class SecuredController : Controller { // GET: Secured [Authorize] public ActionResult Index() { return View((User as ClaimsPrincipal).Claims); } } } 启动类: public class Startup { public void Configuration(IAppBuilder app) { app.SetDefaultSignInAsAuthenticationType(“ClientCookie”); app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationMode = AuthenticationMode.Active, AuthenticationType = “ClientCookie”, […]

将OAuth 2与桌面c#应用程序一起使用

我之前从未使用oauth,所以我希望我的应用程序在系统的默认浏览器上打开一个URL,然后用户登录,授权等等,然后我需要将授权代码发送回我的应用程序,有没有办法做它? 我正在使用Trakt的API 。

如何在Oauth2中同时撤销RefreshToken并使AccessToken无效

我正在使用Owin Oauth2(授权和资源服务器是相同的)开发单页面应用程序(AngularJS + .Net MVC Json Rest API)的身份validation流程。 我在传统的cookie +会话中选择了Bearer Token路由,因为我希望保持无状态,并且因为移动应用程序将使用相同的Api,其中令牌的问题少于cookie。 这是简化的流程: 用户将用户名/密码提交给服务器(通过Https POST到TokenProvider路由) Owin创建一个AccessToken ,其AccessToken包含生成的GUID(代表会话ID)和其他一些声明。 Owin创建了一个RefreshToken 。 Server在RefreshToken表中创建一个条目,其中包含以下字段: GUID(PK)| RefreshToken |订票| DateIssued | DateExpire | DateEnd Server为客户端提供AccessToken和RefreshToken 。 客户端将AccessToken和RefreshToken存储到SessionStorage中。 客户端使用AccessToken访问Api。 当AngularJS检测到AccessToken即将到期时,它会缓冲所有请求并发出grant_type refresh_token request ; server使用客户端提供的RefreshToken ,并且: 从Db检查刷新令牌是否仍然有效( DateExpire > GetTime() And DateEnd is Null ) 从Db拿到机票 从Ticket创建AccessToken 使用新Dates,新RefreshToken和新Ticket更新db条目(注意:GUID保持不变) 当客户端访问注销服务器端时,从已记录用户的身份声明中读取的GUID用于使表上的条目无效( DateEnd = GetTime() )。 客户端两个令牌都从SessionStorage中删除。 […]