Реактивная проверка подлинности с помощью Azure AD - PullRequest
3 голосов
/ 26 мая 2019

Я создаю приложение на реагирующем языке, и мне нужно пройти аутентификацию на сервере через Azure AD.Я пытался гуглить это, но на удивление не так много контента, связанного с этим.Я нашел эту библиотеку'act-native-azure-ad ', но не так много документации о ней.Я не понимаю, как его использовать.Мои основные вопросы: где мне нужно разместить URL-адрес моего сервера при использовании этой библиотеки, чтобы аутентифицироваться в ней?

Спасибо за любые предложения!

РЕДАКТИРОВАТЬ :

Вот мой код:

    import { ReactNativeAD, ADLoginView } from 'react-native-azure-ad'

const CLIENT_ID = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

    class LandingView2 extends React.Component {

        constructor(props) {
            super(props)
            this.AzureADContext = {
                client_id: CLIENT_ID,
                // Optional
                redirect_url: 'http://localhost:8080',
                // Optional
                authority_host: 'xxxx',
                // Optional
                tenant: 'common',
                // Optional
                prompt: 'none',
                // Optional
                login_hint: 'user@domain.com',
                // This is required if client_id is a web application id
                // but not recommended doing this way.
                client_secret: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
                resources: [
                    'https://graph.microsoft.com',
                    'https://outlook.office365.com',
                    // ... more resources
                ]
            }
        }

        render() {

            new ReactNativeAD({
                client_id: CLIENT_ID,
                resources: [
                    'https://outlook.office365.com'
                ]
            })

            return <ADLoginView
                context={ReactNativeAD.getContext(CLIENT_ID)}
                onSuccess={this.onLoginSuccess.bind(this)} />
        }

        onLoginSuccess(credentials) {
            console.log(credentials['https://outlook.office365.com'].access_token)
            // use the access token ..
        }

    }

1 Ответ

1 голос
/ 26 мая 2019

Вам необходимо создать два приложения в AAD.

  • родное приложение для вашего приложения
  • другое приложение для вашего сервера / API

Затем вы можете использовать clientId или AppID URI API в качестве «ресурса» для кода, показанного в вопросе.Все остальные параметры взяты из вашего клиентского приложения.

Если все прошло успешно, вы получите токен доступа, который затем сможете использовать в качестве токена-носителя при вызове вашего API.

credentials['https://yourtenant.onmicrosoft.com/yourapiname'].access_token
...