Как защитить Open xpage REST API с помощью Azure OAuth или Azure API Gateway

Я создал REST API с помощью xpages, и эта база данных имеет анонимный «доступ для авторов». также Настройка OAuth в Azure. Таким образом, потребитель API будет использовать URL-адрес OAuth, идентификатор клиента, секрет клиента, создать токен Azure OAuth и вызвать общедоступную конечную точку API Xpages, как показано ниже.

Например, я получаю токен доступа к носителю и проверяю токен Azure с помощью URL-адреса Azure Discoverykeys. Есть ли другой способ защитить этот API с помощью шлюза API Azure или OAuth. Обратите внимание: это межсерверная аутентификация, и взаимодействие с пользователем недоступно.

<xe:restService pathInfo = "locationupload">
        <xe:this.service>
            <xe:customRestService>
                <xe:this.doPost><![CDATA[#{javascript:try {
          var azureDiscoveryKeys = "https://login.microsoftonline.com/tenentID/discovery/v2.0/keys";
            var token = "Zdl09gMtY3KGHVyQ7UNmoWUJl3DAm7XG9af3zU8Bgb-1gwjfaAvgeobTA";
            var provider = new UrlJwkProvider(new URL(azureDiscoveryKeys));
            var jwt = JWT.decode(token);
            var jwk = provider.get(jwt.getKeyId());
            var publicKey = (RSAPublicKey) jwk.getPublicKey();

            var alg = Algorithm.RSA256(publicKey, null);
            var verifier = JWT.require(alg).build();

            verifier.verify(token);
          System.out.println("Token is Valid");
        

      }catch(JWTVerificationException ex) {
            System.out.println(ex.getMessage());
        } catch(JwkException ex) {
            System.out.println(ex.getMessage());
        }  catch(MalformedURLException ex) {
            System.out.println(ex.getMessage());
        } catch(Exception e) {
          e.printStackTrace();
       }}]]></xe:this.doPost>
            </xe:customRestService>
        </xe:this.service>
    </xe:restService>
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
62
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Domino 12.0.2 можно настроить для приема токена JWT. После настройки ваш сервер должен получить JWT из Azure и отправить его как заголовок носителя авторизации. То же самое относится и к Domino REST API.

Поставщику услуг (SP) все равно, как генерируется токен доступа, поэтому вам, вероятно, не нужен танец OAUTH, просто Azure для микширования JWT.

Просто убедитесь, что база данных не имеет анонимного доступа, поэтому Domino обрабатывает проверку JWT.

Спасибо за ответ Стефан Х. Виссел. Я только что нашел документацию, чтобы использовать ваше предложение с вашего сайта. wissel.net/blog/2016/02/…

user3493803 14.04.2023 18:10
help.hcltechsw.com/domino/12.0.2/admin/…
user3493803 14.04.2023 18:16

Я бы больше не стал этого делать, так как JWT теперь поддерживается в Domino.

stwissel 15.04.2023 05:01

Другие вопросы по теме