Symfony 5: подключение к Azure с помощью HWIOAuthBundle: возникла исключительная ситуация аутентификации - PullRequest
2 голосов
/ 25 марта 2020

Я пытаюсь подключить свое приложение Symfony 5 к Azuse, используя пакет HWIOAuthBundle

У меня появляется следующее сообщение после перенаправления с веб-сайта Microsoft: «Произошло исключение аутентификации.»

Мой securiy.yaml:

security:
    encoders:
        App\Entity\User:
            algorithm: auto

    providers:
        app_user_provider:
            entity:
                class: App\Entity\User
                property: email
    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        secured_area:
            anonymous: ~
            oauth:
                resource_owners:
                    azure:             "/oauth/login/check-azure"
                login_path:        /oauth/login
                use_forward:       false
                failure_path:      /oauth/login

                oauth_user_provider:
                    service: my.oauth_aware.user_provider.service
        main:
            pattern: ^/
            anonymous: lazy
            guard:
                authenticators:
                    - App\Security\LoginFormAuthenticator
            logout:
                path:   app_logout

    access_control:

        - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }

    role_hierarchy:
        ROLE_MANAGE: ROLE_USER
        ROLE_ADMIN: [ROLE_ADMIN, ROLE_MANAGE]
        ROLE_SUPER_ADMIN: [ROLE_ADMIN]

Мой hwi_oauth.yaml

hwi_oauth_redirect:
    resource: "@HWIOAuthBundle/Resources/config/routing/redirect.xml"
    prefix:   /oauth/connect
hwi_oauth_connect:
    resource: "@HWIOAuthBundle/Resources/config/routing/connect.xml"
    prefix:   /oauth/connect
hwi_oauth_login:
    resource: "@HWIOAuthBundle/Resources/config/routing/login.xml"
    prefix:   /oauth/login
azure_login:
    path: /oauth/login/check-azure

Мой hwi_oauth.yaml:

hwi_oauth:
    # list of names of the firewalls in which this bundle is active, this setting MUST be set
    firewall_names: [secured_area]
    resource_owners:
        azure:
            type:                azure
            client_id:           '%env(AZURE_ID)%'
            client_secret:       '%env(AZURE_SECRET)%'
            options:
                resource:    https://graph.windows.net
                application: common

Мои services.yaml:

services:
    _defaults:
        autowire: true      # Automatically injects dependencies in your services.
        autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
    App\:
        resource: '../src/*'
        exclude: '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'
    App\Controller\:
        resource: '../src/Controller'
        tags: ['controller.service_arguments']
    my.oauth_aware.user_provider.service:
        class: HWI\Bundle\OAuthBundle\Security\Core\User\OAuthUserProvider

Я использую этот код для доступа к аутентификации с

    <a href="{{ path('hwi_oauth_service_redirect', {'service': 'azure' }) }}">
        <span>Login with azure</span>
    </a>

Это версии комплектов, которые я использую:

"hwi/oauth-bundle": "1.1.x-dev",
"php-http/guzzle6-adapter": "^2.0",
"php-http/httplug-bundle": "^1.17",

Если вы можете мне помочь, заранее спасибо ^^

...