permission: grant

名前空間: microsoft.graph

アクセス許可で表されるリンクへのアクセス権をユーザーに 付与します

この API は、次の国内クラウド展開で使用できます。

グローバル サービス 米国政府機関 L4 米国政府機関 L5 (DOD) 21Vianet が運営する中国

アクセス許可

この API の最小特権としてマークされているアクセス許可またはアクセス許可を選択します。 アプリで必要な場合にのみ、より高い特権のアクセス許可またはアクセス許可を使用します。 委任されたアクセス許可とアプリケーションのアクセス許可の詳細については、「 アクセス許可の種類」を参照してください。 これらのアクセス許可の詳細については、 アクセス許可のリファレンスを参照してください

アクセス許可の種類 最小特権アクセス許可 特権の高いアクセス許可
委任 (職場または学校のアカウント) Files.ReadWrite Files.ReadWrite.All、Sites.ReadWrite.All
委任 (個人用 Microsoft アカウント) サポートされていません。 サポートされていません。
アプリケーション Files.ReadWrite.All Sites.ReadWrite.All

HTTP 要求

POST /shares/{encoded-sharing-url}/permission/grant

パス パラメーター

パラメーター名 説明
encoded-sharing-url string 必須です。 適切にエンコードされた共有 URL。

共有 URL をエンコードする

共有 URL をエンコードするには、次のロジックを使用します。

  1. まず、base64 を使用して URL をエンコードします。
  2. base64 でエンコードされた結果を unpadded base64url 形式に変換します (値の末尾から = 文字を削除し、/_+- に置き換える)。
  3. 文字列の先頭に u! を追加します。

C# で URL をエンコードする例を以下に示します。

string sharingUrl = "https://onedrive.live.com/redir?resid=1231244193912!12&authKey=1201919!12921!1";
string base64Value = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(sharingUrl));
string encodedUrl = "u!" + base64Value.TrimEnd('=').Replace('/','_').Replace('+','-');

要求ヘッダー

名前 説明
Authorization ベアラー {token}。 必須です。 認証と承認の詳細については、こちらをご覧ください。

要求本文

要求本文で、次のパラメーターを含む JSON オブジェクトを指定します。

{
  "recipients": [
    { "@odata.type": "microsoft.graph.driveRecipient" }
  ],
  "roles": [ "read | write"]
}
パラメーター 説明
Recipients Collection(driveRecipient) アクセス権を受け取る受信者のコレクション。
roles Collection(String) リンクが "既存のアクセス" リンクである場合は、ユーザーに付与するロールを指定します。 それ以外の場合は、リンクのロールと一致する必要があります。

使用可能なロールの一覧については、「 roles プロパティの値」を参照してください。

応答

成功した場合、このメソッドは 200 OK 応答コードと応答本文の アクセス許可 コレクションを返します。

更新されたリンクを表す アクセス許可 は、成功すると常に結果セットに返されます。 更新されたリンクは、'scope' プロパティを含む 'link' ファセットが存在することで識別できます。 場合によっては、更新されたリンクに元のリンクとは異なる URL が含まれている可能性があります。その場合は、新しい URL を使用する必要があります。

エラーがどのように返されるかについては、「エラー応答」のトピックを参照してください。

この例では、リンクに対する他の既存のアクセス許可を変更せずに、ユーザー john@contoso.comryan@external.com に共有リンクへのアクセスを許可します。

要求

POST https://graph.microsoft.com/v1.0/shares/{encoded-sharing-url}/permission/grant
Content-type: application/json

{
  "recipients": [
    {
      "email": "john@contoso.com"
    },
    {
      "email": "ryan@external.com"
    }
  ],
  "roles": ["read"]
}

応答

HTTP/1.1 200 OK
Content-type: application/json

{
  "value": [
    {
      "hasPassword": false,
      "id": "5fab944a-47ec-48d0-a9b5-5178a926d00f",
      "link": {
        "preventsDownload": false,
        "scope": "users",
        "type": "view",
        "webUrl": "https://contoso.sharepoint.com/:t:/g/design/EZexPoDjW4dMtKFUfAl6BK4BvIUuss52hLYzihBfx-PD6Q"
      },
      "roles": [
        "read"
      ]
    }
  ]
}

注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。

リンクが 既存のアクセス リンクの場合、次を表す追加のアクセス許可が返されます。

  • アクセス権が正常に付与された受信者を表すユーザータイプのアクセス許可。 これらは、 grantedTo プロパティが存在することで識別できます。
  • アクセスを取得するために認識されない外部ユーザーに送信する必要がある招待を表すリンク型のアクセス許可。 これらは、 招待 ファセットの存在によって識別できます。 これらのエントリには招待 URL を含む リンク が含まれており、grantedToIdentities コレクションは、リンクを送信するユーザーを示します。
HTTP/1.1 200 OK
Content-type: application/json

{
  "value": [
    {
      "hasPassword": false,
      "id": "00000000-0000-0000-0000-000000000000",
      "link": {
        "preventsDownload": false,
        "scope": "existingAccess",
        "type": "view",
        "webUrl": "https://contoso.sharepoint.com/teams/design/shareddocs/Document.docx"
      },
      "roles": [
        "read"
      ]
    },
    {
      "grantedTo": {
        "user": {
          "displayName": "John Smith",
          "email": "john@contoso.com",
          "id": "47aecee2-d061-4730-8ecb-4c61360441ae"
        }
      },
      "id": "aTowIy5mfG1lbWJlcnNoaXB8bGltaXRlZDJAa2xhbW9kYi5vbm1pY3Jvc29mdC5jb20",
      "roles": [
        "read"
      ]
    },
    {
      "grantedToIdentities": [
        {
          "user": {
            "email": "ryan@external.com"
          }
        }
      ],
      "invitation": {
        "signInRequired": true
      },
      "roles": [
        "read"
      ],
      "link": {
        "type": "view",
        "webUrl": "https://contoso.sharepoint.com/:t:/g/teams/design/EZexPoDjW4dMtKFUfAl6BK4Bw_F7gFH63O310A7lDtK0mQ"
      }
    }
  ]
}

注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。