首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从.NET的(MSAL)获得访问权,而无需登录到Web服务器

从.NET的(MSAL)获得访问权,而无需登录到Web服务器
EN

Stack Overflow用户
提问于 2019-09-14 16:50:02
回答 1查看 451关注 0票数 0

我正在构建一个saas网站(aspnetcore webapi 2.1+angular js),允许用户连接他们的电子邮件帐户(Gmail,outlook .),这样他们就可以接收和发送电子邮件而不需要关闭。我已经顺利地完成了gmail部分,但是当我谈到outlook时,我添加了身份验证部分。我不想(我已经在Gmail集成方面做了)是:

  1. 使用必要的参数(tenantid、clientid.)(https://login.microsoftonline.com/common/oauth2/v2.0/authorize....)将用户直接指向登录页面。
  2. 当用户登录时,将令牌存储在数据库中,并对其进行管理(自动获得新的刷新令牌和访问权限)。 我阅读了很多关于msdn、github、堆栈溢出的文章,发现最近的解决方案是这个:https://github.com/jasonjoh/dotnet-tutorial,但是它将ms用户登录到我的网站上。我只是不想弹出/重定向用户到微软登录页面,让用户的访问通过microsoft Graphy Api获取/发送三封电子邮件,而不是以Microsoft帐户的身份登录。我在MSAL中找不到与Google类似的代码 凭证= GoogleWebAuthorizationBroker.AuthorizeAsync( GoogleClientSecrets.Load(流).Secrets,作用域,tokenId,CancellationToken.None,//新FileDataStore(credPath,true) (IDataStore)userApiTokenRepository //<新window.onload(function(){window.setTimeout(3000,函数( @“LocalServerCodeReceiver( )){window.close();( }});成功链接到gmail!" ) .Result;`

上面的代码将直接指向google登录页面(即使是通过js客户端的http post调用),并将它们存储在我的客户存储库中。我是错过了MSAL中的某些内容,还是必须手动执行第0次流?

EN

Stack Overflow用户

发布于 2019-10-18 19:29:18

要获得MSGraph的访问令牌,用户必须首先登录,以便您可以发送他们的凭据来获取令牌。您不能绕过第一个登录页。

通过拦截openIdConnect事件OnAuthorizationCodeReceived,然后用收到的代码调用AcquireTokenByAuthorizationCode,MSAL可以为您做到这一点。我建议您查看一下这个样本,在OnAuthorizationCodeReceived上设置一个断点,并分析那里正在发生的流。

关于手动实现流,处理令牌过期和安全点将是一项困难的任务。我强烈建议使用MSAL。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57937506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档