> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stackone.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Microsoft OneDrive OAuth 2.0 connector profile – StackOne setup guide

> Set up the OAuth 2.0 connector profile for Microsoft OneDrive in StackOne. One-time admin setup required before your users can link Microsoft OneDrive accounts via Hub.

<Warning>Access to the Azure Portal with permissions to register applications is required.</Warning>

<Panel>
  <div className="not-prose guides-scope-selector" data-guides-scope-selector data-guide-actions-json="[{&#x22;id&#x22;:&#x22;microsoftonedrive_unified_list_files&#x22;,&#x22;label&#x22;:&#x22;List Unified Files&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_unified_get_file&#x22;,&#x22;label&#x22;:&#x22;Get Unified File&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_unified_download_file&#x22;,&#x22;label&#x22;:&#x22;Download Unified File&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_unified_upload_file&#x22;,&#x22;label&#x22;:&#x22;Upload Unified File&#x22;,&#x22;scopes&#x22;:[&#x22;Files.ReadWrite&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_unified_list_folders&#x22;,&#x22;label&#x22;:&#x22;List Unified Folders&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_unified_get_folder&#x22;,&#x22;label&#x22;:&#x22;Get Unified Folder&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_unified_list_drives&#x22;,&#x22;label&#x22;:&#x22;List Unified Drives&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_unified_get_drive&#x22;,&#x22;label&#x22;:&#x22;Get Unified Drive&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_list_drives&#x22;,&#x22;label&#x22;:&#x22;List Current User's Drives&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_list_user_drives&#x22;,&#x22;label&#x22;:&#x22;List User's Drives&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_get_drive&#x22;,&#x22;label&#x22;:&#x22;Get Drive&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_get_default_drive&#x22;,&#x22;label&#x22;:&#x22;Get Default Drive&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_get_drive_root&#x22;,&#x22;label&#x22;:&#x22;Get Drive Root Folder&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_list_drive_children&#x22;,&#x22;label&#x22;:&#x22;List Drive Root Children&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_search_drive&#x22;,&#x22;label&#x22;:&#x22;Search Drive Items&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_list_followed_items&#x22;,&#x22;label&#x22;:&#x22;List Followed Items&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_get_special_folder&#x22;,&#x22;label&#x22;:&#x22;Get Special Folder&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_search_drive_items&#x22;,&#x22;label&#x22;:&#x22;Search Drive Items&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_list_drive_item_children&#x22;,&#x22;label&#x22;:&#x22;List Drive Item Children&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_get_drive_item&#x22;,&#x22;label&#x22;:&#x22;Get Drive Item&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_get_drive_item_by_path&#x22;,&#x22;label&#x22;:&#x22;Get Drive Item By Path&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_create_folder&#x22;,&#x22;label&#x22;:&#x22;Create Folder&#x22;,&#x22;scopes&#x22;:[&#x22;Files.ReadWrite&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_update_drive_item&#x22;,&#x22;label&#x22;:&#x22;Update Drive Item&#x22;,&#x22;scopes&#x22;:[&#x22;Files.ReadWrite&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_delete_drive_item&#x22;,&#x22;label&#x22;:&#x22;Delete Drive Item&#x22;,&#x22;scopes&#x22;:[&#x22;Files.ReadWrite&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_copy_drive_item&#x22;,&#x22;label&#x22;:&#x22;Copy Drive Item&#x22;,&#x22;scopes&#x22;:[&#x22;Files.ReadWrite&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_move_drive_item&#x22;,&#x22;label&#x22;:&#x22;Move Drive Item&#x22;,&#x22;scopes&#x22;:[&#x22;Files.ReadWrite&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_download_drive_item&#x22;,&#x22;label&#x22;:&#x22;Download Drive Item&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_upload_drive_item&#x22;,&#x22;label&#x22;:&#x22;Upload File To Drive&#x22;,&#x22;scopes&#x22;:[&#x22;Files.ReadWrite&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_follow_drive_item&#x22;,&#x22;label&#x22;:&#x22;Follow Drive Item&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_unfollow_drive_item&#x22;,&#x22;label&#x22;:&#x22;Unfollow Drive Item&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_restore_drive_item&#x22;,&#x22;label&#x22;:&#x22;Restore Drive Item&#x22;,&#x22;scopes&#x22;:[&#x22;Files.ReadWrite.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_get_drive_item_thumbnails&#x22;,&#x22;label&#x22;:&#x22;Get Drive Item Thumbnails&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_checkin_drive_item&#x22;,&#x22;label&#x22;:&#x22;Check In Drive Item&#x22;,&#x22;scopes&#x22;:[&#x22;Files.ReadWrite&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_checkout_drive_item&#x22;,&#x22;label&#x22;:&#x22;Check Out Drive Item&#x22;,&#x22;scopes&#x22;:[&#x22;Files.ReadWrite&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_create_sharing_link&#x22;,&#x22;label&#x22;:&#x22;Create Sharing Link&#x22;,&#x22;scopes&#x22;:[&#x22;Files.ReadWrite&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_list_item_versions&#x22;,&#x22;label&#x22;:&#x22;List Item Versions&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_get_item_version&#x22;,&#x22;label&#x22;:&#x22;Get Item Version&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_download_item_version&#x22;,&#x22;label&#x22;:&#x22;Download Item Version&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_list_item_permissions&#x22;,&#x22;label&#x22;:&#x22;List Item Permissions&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_get_item_permission&#x22;,&#x22;label&#x22;:&#x22;Get Item Permission&#x22;,&#x22;scopes&#x22;:[&#x22;Files.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_add_permission&#x22;,&#x22;label&#x22;:&#x22;Send Sharing Invitation&#x22;,&#x22;scopes&#x22;:[&#x22;Files.ReadWrite&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_update_item_permission&#x22;,&#x22;label&#x22;:&#x22;Update Item Permission&#x22;,&#x22;scopes&#x22;:[&#x22;Files.ReadWrite&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_delete_item_permission&#x22;,&#x22;label&#x22;:&#x22;Delete Item Permission&#x22;,&#x22;scopes&#x22;:[&#x22;Files.ReadWrite&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_list_users&#x22;,&#x22;label&#x22;:&#x22;List Users&#x22;,&#x22;scopes&#x22;:[&#x22;User.ReadBasic.All&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_get_user&#x22;,&#x22;label&#x22;:&#x22;Get User&#x22;,&#x22;scopes&#x22;:[&#x22;User.Read&#x22;]},{&#x22;id&#x22;:&#x22;microsoftonedrive_create_user&#x22;,&#x22;label&#x22;:&#x22;Create User&#x22;,&#x22;scopes&#x22;:[&#x22;User.ReadWrite.All&#x22;]}]" style={{ borderRadius: '8px', padding: '16px', marginBottom: '24px' }}>
    <div className="guides-scope-selector__title" style={{ fontSize: '16px', fontWeight: '600', marginBottom: '12px' }}>Select Actions to adjust the guide</div>
    <div className="guides-scope-selector__muted" style={{ fontSize: '13px', marginBottom: '12px' }}>Some actions may require additional configuration in the provider to be accessible. Choose the actions you need and the guide will be updated.</div>

    <div style={{ display: 'flex', gap: '8px', marginBottom: '12px', flexWrap: 'wrap' }}>
      <input type="text" placeholder="Search actions..." className="guides-scope-selector__input" data-guide-action-search style={{ padding: '8px 12px', borderRadius: '6px', fontSize: '13px', flex: 1, minWidth: '160px' }} />

      <button type="button" className="guides-scope-selector__quick-btn" data-guide-select-all style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Select all</button>
      <button type="button" className="guides-scope-selector__quick-btn" data-guide-clear style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Clear</button>
    </div>

    <div className="guides-scope-selector__list" style={{ maxHeight: '240px', overflowY: 'auto', borderRadius: '6px', marginBottom: '12px' }}>
      <div className="guides-scope-selector__list-header" style={{ display: 'flex', alignItems: 'center', gap: '10px', padding: '8px 12px', fontSize: '12px', fontWeight: '600', position: 'sticky', top: 0, zIndex: 1 }}>
        <div style={{ width: '16px', flexShrink: 0 }} />

        <div style={{ flex: 1, textAlign: 'left' }}>Action</div>
        <div style={{ minWidth: '120px', marginLeft: 'auto', textAlign: 'right' }}>Scope(s)</div>
      </div>

      <div className="guides-scope-selector__muted" data-guide-loading style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>Loading actions...</div>
      <div className="guides-scope-selector__muted" data-guide-no-results hidden style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>No actions match your search.</div>
    </div>

    <div className="guides-scope-selector__url-section" style={{ marginTop: '12px', paddingTop: '12px' }}>
      <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Dynamic Guide URL</div>

      <div style={{ display: 'flex', alignItems: 'center', gap: '8px', flexWrap: 'wrap' }}>
        <input type="text" readOnly className="guides-scope-selector__input" data-guide-url style={{ flex: 1, minWidth: '200px', padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace' }} />

        <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-url style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap', marginLeft: 'auto' }}>Copy URL</button>
      </div>

      <div style={{ marginTop: '12px' }}>
        <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Scopes Selected</div>

        <div style={{ display: 'flex', alignItems: 'stretch', gap: '8px', flexWrap: 'wrap' }}>
          <pre className="guides-scope-selector__input" role="textbox" aria-readonly="true" tabIndex={0} data-guide-scopes-output style={{ flex: 1, minWidth: '200px', minHeight: '88px', maxHeight: '120px', overflowY: 'auto', margin: 0, padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace', whiteSpace: 'pre-wrap' }} />

          <div className="guides-scope-selector__muted" style={{ display: 'flex', flexDirection: 'column', gap: '8px', fontSize: '12px', fontWeight: '500', flexShrink: 0, alignItems: 'flex-start' }}>
            <div style={{ whiteSpace: 'nowrap' }}>Separator</div>

            <select className="guides-scope-selector__input" data-guide-scope-delimiter style={{ width: '100%', padding: '6px 10px', borderRadius: '6px', fontSize: '12px' }}>
              <option value="space">Space</option>
              <option value="comma">Comma</option>
              <option value="semicolon">Semicolon</option>
              <option value="pipe">Pipe</option>
              <option value="newline">Newline</option>
            </select>

            <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-scopes style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap' }}>Copy scopes</button>
          </div>
        </div>
      </div>
    </div>
  </div>
</Panel>

<section data-guide-section data-guide-scopes="">
  <h2>Register an Application in Azure</h2>

  <p>To use OAuth 2.0 authentication, you need to register an application in the Azure Portal.</p>

  <Steps>
    <Step title="Sign in and navigate to App Registrations">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Sign in to the <a href="https://portal.azure.com" target="_blank" rel="noopener noreferrer">Azure Portal</a> and search for <strong>App registrations</strong> in the top search bar, or navigate to <strong>Microsoft Entra ID</strong> > <strong>App registrations</strong>.</p>
      </div>
    </Step>

    <Step title="Create a new registration">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Click <strong>+ New registration</strong> and provide the following details:</p>

        <ul>
          <li>Enter a name for your application (e.g., StackOne Microsoft OneDrive)</li>
          <li>Under <strong>Supported account types</strong>, select <strong>Single tenant</strong> if only your organization will use this integration, or <strong>Multitenant</strong> if you need to support users from multiple Azure AD tenants</li>
          <li>Leave redirect URI blank for now</li>
          <li>Click <strong>Register</strong></li>
        </ul>
      </div>
    </Step>

    <Step title="Copy the Client ID">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>On the <strong>Overview</strong> page, copy the <strong>Application (client) ID</strong> and store it securely for use later.</p>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Configure Redirect URI</h2>

  <p>Add the redirect URI to allow OAuth authentication flow.</p>

  <Steps>
    <Step title="Navigate to Authentication Settings">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>From your app's <strong>Overview</strong> page, go to <strong>Authentication (Preview)</strong> under the <strong>Manage</strong> section. (In some cases, this may appear as <strong>Authentication</strong> depending on the UI version.)</p>
      </div>
    </Step>

    <Step title="Configure redirect URI">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Under <strong>Redirect URI configuration</strong>, click <strong>Add Redirect URI</strong>, select <strong>Web</strong>, enter the StackOne OAuth callback URL, and click <strong>Configure</strong>.</p>

        <ul>
          <li>Redirect URI: `https://api.stackone.com/connect/oauth2/microsoftonedrive/callback`</li>
          <li>Note: If you are using the older UI, under <strong>Platform configurations</strong> click <strong>Add a platform</strong>, select <strong>Web</strong>, enter the URI above, and click <strong>Configure</strong>.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Configure API Permissions</h2>

  <p>Grant your application the necessary permissions to access Microsoft OneDrive data.</p>

  <Steps>
    <Step title="Add Microsoft Graph permissions">
      <div data-guide-step data-guide-scopes="Files.Read,Files.ReadWrite,Files.Read.All,Files.ReadWrite.All,User.Read,User.ReadBasic.All,User.ReadWrite.All" data-guide-display-scopes-list="Files.Read,Files.ReadWrite,Files.Read.All,Files.ReadWrite.All,User.Read,User.ReadBasic.All,User.ReadWrite.All">
        <div className="connector-guide-actions-badge" data-guide-actions-badge data-guide-actions-badge-scopes="Files.Read,Files.ReadWrite,Files.Read.All,Files.ReadWrite.All,User.Read,User.ReadBasic.All,User.ReadWrite.All" style={{ display: 'block', width: 'fit-content', maxWidth: '100%', padding: '2px 8px', borderRadius: '8px', fontSize: '12px', marginBottom: '8px', marginTop: '-10px', whiteSpace: 'nowrap', overflowX: 'auto', overflowY: 'hidden', msOverflowStyle: 'none', scrollbarWidth: 'none' }}>
          <span>Enables actions: </span><span data-guide-actions-badge-labels>Check In Drive Item, Check Out Drive Item, Copy Drive Item, Create Folder, Create Sharing Link, Create User, Delete Drive Item, Delete Item Permission, Download Drive Item, Download Item Version, Download Unified File, Follow Drive Item, Get Default Drive, Get Drive, Get Drive Item, Get Drive Item By Path, Get Drive Item Thumbnails, Get Drive Root Folder, Get Item Permission, Get Item Version, Get Special Folder, Get Unified Drive, Get Unified File, Get Unified Folder, Get User, List Current User's Drives, List Drive Item Children, List Drive Root Children, List Followed Items, List Item Permissions, List Item Versions, List Unified Drives, List Unified Files, List Unified Folders, List User's Drives, List Users, Move Drive Item, Restore Drive Item, Search Drive Items, Send Sharing Invitation, Unfollow Drive Item, Update Drive Item, Update Item Permission, Upload File To Drive, Upload Unified File</span>
        </div>

        <p>Under <strong>Manage</strong>, select <strong>API permissions</strong> > <strong>Add a permission</strong> > <strong>Microsoft Graph</strong> > <strong>Delegated permissions</strong>. Add the scopes required for your use case, then click <strong>Add permissions</strong> to save.</p>

        <div style={{ marginTop: '8px' }} data-guide-display-scopes>
          <div className="connector-guide-scopes-container">
            <ul className="not-prose" style={{ listStyleType: "'- '", paddingLeft: '1em', margin: 0 }}>
              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="Files.Read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy Files.Read" title="Copy scope" data-copy="Files.Read">
                  <span className="connector-guide-scope-copy__label">Files.Read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="Files.ReadWrite">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy Files.ReadWrite" title="Copy scope" data-copy="Files.ReadWrite">
                  <span className="connector-guide-scope-copy__label">Files.ReadWrite</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="Files.Read.All">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy Files.Read.All" title="Copy scope" data-copy="Files.Read.All">
                  <span className="connector-guide-scope-copy__label">Files.Read.All</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="Files.ReadWrite.All">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy Files.ReadWrite.All" title="Copy scope" data-copy="Files.ReadWrite.All">
                  <span className="connector-guide-scope-copy__label">Files.ReadWrite.All</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="User.Read">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy User.Read" title="Copy scope" data-copy="User.Read">
                  <span className="connector-guide-scope-copy__label">User.Read</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="User.ReadBasic.All">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy User.ReadBasic.All" title="Copy scope" data-copy="User.ReadBasic.All">
                  <span className="connector-guide-scope-copy__label">User.ReadBasic.All</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="User.ReadWrite.All">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy User.ReadWrite.All" title="Copy scope" data-copy="User.ReadWrite.All">
                  <span className="connector-guide-scope-copy__label">User.ReadWrite.All</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </Step>

    <Step title="Grant admin consent">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Click <strong>Grant admin consent for \[Your Organization]</strong> to authorize these permissions for use across your tenant.</p>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Generate Client Secret</h2>

  <p>Create a client secret that will be used to authenticate your application with Microsoft OneDrive.</p>

  <Steps>
    <Step title="Navigate to Certificates & Secrets">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>From the left menu under <strong>Manage</strong>, select <strong>Certificates & secrets</strong>.</p>
      </div>
    </Step>

    <Step title="Create a New Client Secret">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Under the <strong>Client secrets</strong> tab, click <strong>New client secret</strong>.</p>

        <ul>
          <li>Add a <strong>Description</strong> (e.g., StackOne Integration Secret).</li>
          <li>Select an expiration period.</li>
          <li>Click <strong>Add</strong>.</li>
        </ul>
      </div>
    </Step>

    <Step title="Copy the Client Secret Value">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Immediately copy the <strong>Value</strong> of the newly created client secret and store it securely for use later. This value will only be shown once and cannot be retrieved again.</p>
      </div>
    </Step>
  </Steps>
</section>

## Creating the StackOne Connector Profile

To create the Connector Profile in StackOne for <strong>Microsoft OneDrive</strong>:

<Steps>
  <Step title="Navigate to Connector Profiles">
    Login to StackOne and navigate to [Connector Profiles](https://app.stackone.com/connector_profiles)
  </Step>

  <Step title="Create New Connector Profile">
    <ul>
      <li>Click <strong>+ Connector Profile</strong></li>
      <li>Search for and select <strong>Microsoft OneDrive</strong></li>
      <li>Select <strong>Type</strong> as <strong>OAuth 2.0</strong></li>

      <li>
        Fill out the fields using details retrieved from your provider:

        <ul style={{ marginLeft: '20px' }}>
          <li><strong>Client ID</strong></li>
          <li><strong>Client Secret</strong></li>
          <li><strong>Scopes</strong> (Optional)</li>
        </ul>
      </li>

      <li>(Optional) Select <strong>Actions</strong> to be enabled for this Connector Profile</li>
      <li>Click <strong>Create profile</strong></li>
    </ul>
  </Step>
</Steps>

Congratulations! The new Connector Profile will now show up in your project ready to be used. You can now continue to <a href="/guides/accounts-section#linking-accounts">Link Accounts</a> for <strong>Microsoft OneDrive</strong>.
