Word在线SSO - getAccessTokenAsync没有响应没有错误

时间:2018-06-01 08:32:54

标签: azure-active-directory office-js

我为Word Online创建了一个Office加载项,但我无法使SSO正常工作。

当加载项被激活时,Word Online会提示用户接受加载项权限,但我无法通过Office.js获取SSO令牌。

首次调用getAccessTokenAsync()时,我没有得到任何回复或错误。如果我再次调用该函数,则会收到错误代码13008。表示操作正在运行,但结果永远不会返回。

清单文件附带

<WebApplicationInfo>
    <Id>00e69b3f-c86c-4764-9e6e-xxxxxxxx</Id>
    <Resource>api://localhost:43443/00e69b3f-c86c-4764-9e6e-xxxxxxxx </Resource>
    <Scopes>
        <Scope>openid</Scope>
        <Scope>offline_access</Scope>
        <Scope>user.read</Scope>        
        <Scope>profile</Scope>
    </Scopes>
</WebApplicationInfo>

Azure端点v2注册

加载项已在https://apps.dev.microsoft.com

注册

Platform Web Api:

api://localhost:43443/00e69b3f-c86c-4764-9e6e-xxxxxxxx

预授权申请:

bc59ab01-8403-45c6-8796-ac3ef710b3e3
57fb890c-0dab-4253-a5e0-7188c88b2bb4
d3590ed6-52b3-4102-aeff-aad2292ab01c

权限:

openid
offline_access
user.read
Profile

我已授予管理员同意权 https://login.microsoftonline.com/common/adminconsent?client_id=00e69b3f-c86c-4764-9e6e-xxxxxxxx&state=12345

更新

如果将相同的清单侧载到Powerpoint online或Excel / Spreadsheet online,它可以通过调用getAccessTokenAsync()获取令牌,但仍然不在Word Online中

文档主机

&#13;
&#13;
  <Hosts>
      <!--Each host can have a different set of commands. Cool huh!? -->
      <!-- Workbook=Excel Document=Word Presentation=PowerPoint -->
      <!-- Make sure the hosts you override match the hosts declared in the top section of the manifest -->
      <Host xsi:type="Document">
	  


        <!-- Form factor. Currenly only DesktopFormFactor is supported. We will add TabletFormFactor and PhoneFormFactor in the future-->
        <DesktopFormFactor>

          <!--GetStarted information used on the callout that appears when installing the add-in. 
            Ensure you have build 16.0.6769 or above for GetStarted section to work-->
          <GetStarted>
            <!--Title of the Getting Started callout. resid points to a ShortString resource -->
            <Title resid="dt.GetStarted.Title"/>

            <!--Description of the Getting Started callout. resid points to a LongString resource -->
            <Description resid="dt.GetStarted.Description"/>

            <!--Not used right now but you need to provide a valid resource. We will add code in the future to consume this URL. 
							resid points to a Url resource -->
            <LearnMoreUrl resid="dt.GetStarted.LearnMoreUrl"/>
          </GetStarted>

          <!--Function file is an html page that includes the javascript where functions for ExecuteAction will be called. 
            Think of the FunctionFile as the "code behind" ExecuteFunction-->
          <FunctionFile resid="dt.FunctionFile.Url" />
          

          <!--PrimaryCommandSurface==Main Office Ribbon-->
          <ExtensionPoint xsi:type="PrimaryCommandSurface">
            <!--Use OfficeTab to extend an existing Tab. Use CustomTab to create a new tab -->
            <!-- Documentation includes all the IDs currently tested to work -->
            <CustomTab id="dt.Tab1">
              <!--Group ID-->
              <Group id="dt.Tab1.Group1">
                <!--Label for your group. resid must point to a ShortString resource -->
                <Label resid="dt.Tab1.GroupLabel" />
                <Icon>
                  <!-- Sample Todo: Each size needs its own icon resource or it will look distorted when resized -->
                  <!--Icons. Required sizes 16,31,80, optional 20, 24, 40, 48, 64. Strongly recommended to provide all sizes for great UX -->
                  <!--Use PNG icons and remember that all URLs on the resources section must use HTTPS -->
                  <bt:Image size="16" resid="dt.TaskpaneButton.Icon" />
                  <bt:Image size="32" resid="dt.TaskpaneButton.Icon" />
                  <bt:Image size="80" resid="dt.TaskpaneButton.Icon" />
                </Icon>

                <!--Control. It can be of type "Button" or "Menu" -->
                <Control xsi:type="Button" id="dt.LetterButton">
                  <!--Label for your button. resid must point to a ShortString resource -->
                  <Label resid="dt.LetterButton.Label" />
                 
                  <Supertip>
                    <!--ToolTip title. resid must point to a ShortString resource -->
                    <Title resid="dt.LetterButton.Label" />
                    <!--ToolTip description. resid must point to a LongString resource -->
                    <Description resid="dt.LetterButton.Tooltip" />
                  </Supertip>
                  <Icon>
                    <bt:Image size="16" resid="dt.LetterButton.Icon16" />
                    <bt:Image size="32" resid="dt.LetterButton.Icon32" />
                    <bt:Image size="80" resid="dt.LetterButton.Icon80" />
                  </Icon>
                  <!--This is what happens when the command is triggered (E.g. click on the Ribbon). Supported actions are ExecuteFuncion or ShowTaskpane-->
                  <!--Look at the FunctionFile.html page for reference on how to implement the function -->
                  <Action xsi:type="ExecuteFunction">
                    <!--Name of the function to call. This function needs to exist in the global DOM namespace of the function file-->
                    <FunctionName>ShowDialog</FunctionName>
                  </Action>
                </Control>

                <Control xsi:type="Button" id="dt.PhraseButton">
                  <!--Label for your button. resid must point to a ShortString resource -->
                  <Label resid="dt.PhraseButton.Label" />
                  <Supertip>
                    <!--ToolTip title. resid must point to a ShortString resource -->
                    <Title resid="dt.PhraseButton.Label" />
                    <!--ToolTip description. resid must point to a LongString resource -->
                    <Description resid="dt.PhraseButton.Tooltip" />
                  </Supertip>
                  <Icon>
                    <bt:Image size="16" resid="dt.PhraseButton.Icon16" />
                    <bt:Image size="32" resid="dt.PhraseButton.Icon32" />
                    <bt:Image size="80" resid="dt.PhraseButton.Icon80" />
                  </Icon>
                  <!--This is what happens when the command is triggered (E.g. click on the Ribbon). Supported actions are ExecuteFuncion or ShowTaskpane-->
                  <!--Look at the FunctionFile.html page for reference on how to implement the function -->
                  <Action xsi:type="ExecuteFunction">
                    <!--Name of the function to call. This function needs to exist in the global DOM namespace of the function file-->
                    <FunctionName>ShowDialog</FunctionName>
                  </Action>
                </Control>          
              </Group>
              <Group id="dt.Tab1.Group2">
                <!--Label for your group. resid must point to a ShortString resource -->
                <Label resid="dt.Tab1.GroupLabel2" />
                <Icon>
                  <!-- Sample Todo: Each size needs its own icon resource or it will look distorted when resized -->
                  <!--Icons. Required sizes 16,31,80, optional 20, 24, 40, 48, 64. Strongly recommended to provide all sizes for great UX -->
                  <!--Use PNG icons and remember that all URLs on the resources section must use HTTPS -->
                  <bt:Image size="16" resid="dt.TaskpaneButton.Icon" />
                  <bt:Image size="32" resid="dt.TaskpaneButton.Icon" />
                  <bt:Image size="80" resid="dt.TaskpaneButton.Icon" />
                </Icon>

                <Control xsi:type="Button" id="dt.SignonButton">
                  <!--Label for your button. resid must point to a ShortString resource -->
                  <Label resid="dt.SignonButton.Label" />
                  <Supertip>
                    <!--ToolTip title. resid must point to a ShortString resource -->
                    <Title resid="dt.SignonButton.Label" />
                    <!--ToolTip description. resid must point to a LongString resource -->
                    <Description resid="dt.SignonButton.Tooltip" />
                  </Supertip>
                  <Icon>
                    <bt:Image size="16" resid="dt.SignonButton.Icon16" />
                    <bt:Image size="32" resid="dt.SignonButton.Icon32" />
                    <bt:Image size="80" resid="dt.SignonButton.Icon80" />
                  </Icon>
                  <!--This is what happens when the command is triggered (E.g. click on the Ribbon). Supported actions are ExecuteFuncion or ShowTaskpane-->
                  <!--Look at the FunctionFile.html page for reference on how to implement the function -->
                  <Action xsi:type="ExecuteFunction">
                    <!--Name of the function to call. This function needs to exist in the global DOM namespace of the function file-->
                    <FunctionName>OpenAccountStatus</FunctionName>
                  </Action>
                </Control>
              
                 <Control xsi:type="Button" id="dt.SignonButton3">
                  <!--Label for your button. resid must point to a ShortString resource -->
                  <Label resid="dt.SignonButton.Label" />
                  <Supertip>
                    <!--ToolTip title. resid must point to a ShortString resource -->
                    <Title resid="dt.SignonButton.Label" />
                    <!--ToolTip description. resid must point to a LongString resource -->
                    <Description resid="dt.SignonButton.Tooltip" />
                  </Supertip>
                  <Icon>
                    <bt:Image size="16" resid="dt.SignonButton.Icon16" />
                    <bt:Image size="32" resid="dt.SignonButton.Icon32" />
                    <bt:Image size="80" resid="dt.SignonButton.Icon80" />
                  </Icon>
                  <!--This is what happens when the command is triggered (E.g. click on the Ribbon). Supported actions are ExecuteFuncion or ShowTaskpane-->
                  <!--Look at the FunctionFile.html page for reference on how to implement the function -->
                  <Action xsi:type="ShowTaskpane">  
                    <TaskpaneId>ButtonId1</TaskpaneId>  
                    <!-- Provide a url resource id for the location that will be displayed on the task pane. -->  
                    <SourceLocation resid="Contoso.Taskpane.Url" />  
                  </Action>  
                </Control>
              </Group>

              <!-- Label of your tab -->
              <!-- If validating with XSD it needs to be at the end, we might change this before release -->
              <Label resid="dt.Tab1.TabLabel" />
            </CustomTab>
          </ExtensionPoint>
        </DesktopFormFactor>
      </Host>
&#13;
&#13;
&#13;

0 个答案:

没有答案