2016-11-18 5 views
2

現在、adalを使用して認証トークンを取得するOfficeアドインで作業しています。アドダルではなくOfficeDev/office-js-helpersを使用して認証する

私はFabricフロントエンドを使用したいので、私はそれをReactに変更しています。officer-js-helpersがadalライブラリと同じ仕事をする認証ツールを実装していることがわかりました。 この前提で正しいですか?私はadal.jsライブラリを持っている :

var adalConfig = { 
    instance: 'https://login.microsoftonline.com/', 
    tenant: 'myprivatesite.onmicrosoft.com', 
    clientId: 'xxx-xxx-xxx-xxx-xxx', 
    endpoints: { 
     'https://my.private.url.endpoint/path': 'https://myprivatesite.onmicrosoft.com/path.to.something', 
    } 

そして、このトークン要求:

var authContext = new AuthenticationContext(adalConfig); 
authContext.acquireToken('https://myprivatesite.onmicrosoft.com/path.to.something', function (error, token) { 
     console.log(token) 
     }); 

UPDATEもしそうなら、どのように私はオフィス-JS-ヘルパー認証機能を使用して、このアダル設定を複製します私の反応アプリで働いています。私は、角度プロバイダのinit関数のコードの一部を使用して、認証トークンを取得しました。

質問が残っています。 office-js-helpersを使って同じことをすることはできますか?

答えて

0

OKこれは非常に簡単です。 adal設定から必要とされるのは、クライアントIDとテナントだけです。

if (OfficeHelpers.Authenticator.isAuthDialog()) { 
    return; 
} 

var authenticator = new OfficeHelpers.Authenticator(); 

authenticator.endpoints.registerAzureADAuth('xxx-xxx-xxx-xxx-xxx', //clientId 
'myprivatesite.onmicrosoft.com' // tenant 
); 

authenticator.authenticate(OfficeHelpers.DefaultEndpoints.AzureAD) 
    .then(function (token) { 
    console.log(token); 
    .catch(function(error) { 
    console.log(error); 
    }); 
+0

質問は誤解を招きます。Office-js-helpersの作業用コードを探していました。 adal.jsとoffice.jsヘルパーの比較ではありません。実際、この質問はadal.jsとは関係ありません。 –

2

Webアドイン認証のためにAdal.jsをそのまま使用することはできません。なぜならWebアドインのサンドボックス化されたiFrameコンテキストでは、ドメイン外でホストされている認証ログインページにナビゲートできないからです。

Office-js-helpersは利用可能な場合はdialogAPIを使用し、利用できない場合は代替手段としてポップアップを使用します。

正しく覚えていれば、Office-js-helpersはAzure AD v2.0(Azure ADと比較して多くの素晴らしい新機能が付いています)のみを対象としています。私はそれが良い選択だと思う。

私はOpen source sampleを作成しました。ドキュメントはあなたにとって興味深いものです。ただし、暗黙のフローを検索しているときに、AuthorizationCodeフローに基づいています。

+0

私はその側面について心配していません - 現在動作しているアドインがあり、既存のオフィス認証を使用してアドインを認証しています。実際には、あなたが既にoutlook.office.com(私の場合)で認証されていれば、アドインは正しく起動します。 Office-js-helpersがこの文脈で適切であるかどうか、実際に私が持っている方法でそれらを使用することができるかどうかを知りたいと思います。 – Stevo

+1

私はあなたのコメントを理解していません。あなたはOutlook内で既に認証されていると言いましたが、AzureAD APIを要求するベアラはどこにありますか?ベアラトークンを取得するには、adal.jsによって実行された第2の認証フローが必要です。 Office-js-helpersは、iFrame /ポップアップの問題を起こすことなく、アドインコンテキストでOAUTHフローを実装するのに役立ちます。 refresh_tokensなどのadal.jsによって処理されたものを再実装する必要があります。 –

+1

フローを実装する際にiFrame /ポップアップの危機が発生していなくても、おそらく 'login.windows.net'を信頼できるものに設定しているからですアドインのリダイレクトを許可したマニフェストのappdomain。ただし、ログインページが「会社のページ」であり、そのドメインを事前に知ることができず、マニフェストに設定することはできません。この[ブログ記事](https://blogs.msdn.microsoft.com/richard_dizeregas_blog/2015/08/10/connecting-to-office-365-from-an-office-add-in/)を参照してください。ダイアログAPI(Office-js-helpersで使用される)では、ほとんどの場合、ポップアップを避けることができます。 –

関連する問題