Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure Microsofts基础设施的当前OAuth URL和作用域是什么?_Azure_Outlook_Oauth 2.0_Botframework_Cortana Skills Kit - Fatal编程技术网

Azure Microsofts基础设施的当前OAuth URL和作用域是什么?

Azure Microsofts基础设施的当前OAuth URL和作用域是什么?,azure,outlook,oauth-2.0,botframework,cortana-skills-kit,Azure,Outlook,Oauth 2.0,Botframework,Cortana Skills Kit,我试图建立一个机器人,将需要一个基本的outlook登录。我在看这个视频 17:02的guy为作用域、授权和令牌URL添加了以下值: wl.basic wl.birthday https://login.live.com/oauth20_authorize.srf https://login.live.com/oauth20_token.srf 然后我偶然发现了微软的文档: var message = context.MakeMessage() as IMessageActivity; me

我试图建立一个机器人,将需要一个基本的outlook登录。我在看这个视频

17:02的guy为作用域、授权和令牌URL添加了以下值:

wl.basic wl.birthday
https://login.live.com/oauth20_authorize.srf
https://login.live.com/oauth20_token.srf
然后我偶然发现了微软的文档:

var message = context.MakeMessage() as IMessageActivity;
message.Speak = "This is a Sign-in card";
message.Summary = "This is a Sign-in card";
message.Text = "Message Text";
message.Attachments = new List<Attachment>(){
    new SigninCard("You need to authorize me", new List<CardAction>()
    {
        new CardAction()
        {
            Value = "https://login.microsoftonline.com/?redirect_uri=http%3a%2f%2fbing.com%2fagents%2foauth",
            Type = "signin",
            Title = "Connect"
        }
    }).ToAttachment()
};
await context.PostAsync(message);

其中表示作用域和URL的值为:

User.Read offline_access openid
https://login.microsoftonline.com/common/oauth2/v2.0/authorize
https://login.microsoftonline.com/common/oauth2/v2.0/token
视频来自2017年5月10日(即2017年5月10日),文章来自2017年4月8日。那么,哪一个是正确的/不推荐的?我还尝试将它们混合在一起,这就是不同组合的登录提示的外观:

正如您所看到的,所有四种不同的作用域/URL都会生成完全不同的登录UI?!?!?!(右边一栏的看起来也有点破损)哪种方法正确

更新 此外,在本文之后,我使用文档中描述的URL向我的bot添加了一张singin卡:

var message = context.MakeMessage() as IMessageActivity;
message.Speak = "This is a Sign-in card";
message.Summary = "This is a Sign-in card";
message.Text = "Message Text";
message.Attachments = new List<Attachment>(){
    new SigninCard("You need to authorize me", new List<CardAction>()
    {
        new CardAction()
        {
            Value = "https://login.microsoftonline.com/?redirect_uri=http%3a%2f%2fbing.com%2fagents%2foauth",
            Type = "signin",
            Title = "Connect"
        }
    }).ToAttachment()
};
await context.PostAsync(message);
var message=context.MakeMessage()作为IMessageActivity;
message.Speak=“这是一张登录卡”;
message.Summary=“这是一张登录卡”;
message.Text=“message Text”;
message.Attachments=新列表

更新2新鲜!!!:
这个答案需要一点历史知识:)

当年,为了验证Microsoft用户的身份,您必须知道该用户是否具有OrgId(用于登录Microsoft的业务服务)或MSA(用于登录非业务Microsoft服务)身份。出于我不想离题的原因,它产生了两个oAuth端点:

  • 。。。是/是MSA特定标识的令牌端点
  • 。。。是/曾经是OrgID特定标识的令牌端点
可以理解,开发人员对此感到非常不安。为了解决此问题,Microsoft创建了,它允许您对两种帐户类型使用一个AuthN/Z端点。v2应用程序模型使用了很多黑魔法来消除MSA和OrgID之间在同意、作用域、端点等方面的差异,因此作为开发人员,您不必担心它

然而,我们的一些API,特别是在v2端点之前创建的API,是针对特定帐户类型的。Nafis在构建演示中使用的实时API,IIRC不能很好地使用OrgID身份-如果用户使用OrgID帐户登录v2端点,您将得到不理想的行为,因为访问令牌将用于OrgID帐户。为了防止这种违反技能的行为,他直接使用MSA端点(live.com),阻止OrgID用户登录到技能

混合URL时,您会看到不同的UX,因为v1和v2端点提供不同的登录UX。最后一个图像中的错误消息似乎表明您正在使用MSA标识登录到聚合API$5表示这与混合v1和v2端点/作用域/等有关,但如果不查看确切的API调用,就很难判断


CSK文档使用v2端点是因为现在我们的大多数API(包括mail/Outlook API,它们现在是的一部分)都使用v2端点。当我使用MSFT服务编写代码时(或当我为服务编写文档时;),我默认使用v2应用程序模型,除非API文档特别提到v1端点,比如do。

我没有答案,但我知道MSA的身份验证系统现在(已经几个月)有很多用户流失(Microsoft帐户)和组织帐户。我认为在Microsoft端的所有这些身份验证系统之间大约有42个bajillion重定向。您可能会看到其中的一些。不过,这个故事的寓意是,两个或两个都可能不受欢迎。因此,请准备好这里的一个毛茸茸的/有趣的答案。;-)至少我不是唯一一个这么想的人。谢谢现在,我正在等待微软的代表为我澄清,显然其他人也感到困惑。那么,我的帖子中显示了这四个方面的什么组合呢?确切地说,特别是我现在应该使用哪四个组合,以使所有内容都现代化、准确,并与最新的微软技术保持同步?还有为什么“”会生成这个Office365登录对话框,我应该使用什么来代替,因为我显然不能信任文档,必须明确地向StackOverflow询问进一步的解释?谢谢你的澄清!Office365与CSK或我的Bot登录卡有什么关系(CSK和Bot框架基本上都是Bot,对吗?所以它们需要有相同的登录卡URL)?!哪个是正确的URL?