realm-identity-provider.html 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <div class="col-sm-9 col-md-10 col-sm-push-3 col-md-push-2">
  2. <h1>{{:: 'identity-providers' | translate}}</h1>
  3. <div class="blank-slate-pf" data-ng-hide="configuredProviders.length > 0">
  4. <div class="blank-slate-pf-icon">
  5. <span class="fa fa-exchange"></span>
  6. </div>
  7. <h1>
  8. {{:: 'identity-providers' | translate}}
  9. </h1>
  10. <p class="">
  11. Through Identity Brokering it's easy to allow users to authenticate to Keycloak using external Identity Providers or Social Networks.<br> We have built-in support for OpenID Connect and SAML 2.0 as well as a number of social networks such as Google, GitHub, Facebook and Twitter.
  12. </p>
  13. <p>To get started select a provider from the dropdown below:</p>
  14. <div class="blank-slate-pf-main-action">
  15. <div class="row" data-ng-show="access.manageIdentityProviders">
  16. <div class="col-sm-4 col-sm-offset-4">
  17. <div class="form-group">
  18. <select class="form-control" ng-model="provider"
  19. ng-options="p.name group by p.groupName for p in allProviders track by p.id"
  20. data-ng-change="addProvider(provider); provider = null">
  21. <option value="" disabled selected>{{:: 'add-provider.placeholder' | translate}}</option>
  22. </select>
  23. </div>
  24. </div>
  25. </div>
  26. </div>
  27. </div>
  28. <form name="realmForm" novalidate class="form-horizontal" ng-show="configuredProviders.length > 0">
  29. <fieldset>
  30. <div>
  31. <table class="table table-striped table-bordered">
  32. <caption class="hidden">{{:: 'table-of-identity-providers' | translate}}</caption>
  33. <thead>
  34. <tr>
  35. <th colspan="8" class="kc-table-actions">
  36. <div class="dropdown pull-right" data-ng-show="access.manageIdentityProviders">
  37. <select class="form-control" ng-model="provider"
  38. ng-options="p.name group by p.groupName for p in allProviders track by p.id"
  39. data-ng-change="addProvider(provider); provider = null">
  40. <option value="" disabled selected>{{:: 'add-provider.placeholder' | translate}}</option>
  41. </select>
  42. </div>
  43. </th>
  44. </tr>
  45. <tr>
  46. <th>{{:: 'name' | translate}}</th>
  47. <th>{{:: 'provider' | translate}}</th>
  48. <th>{{:: 'enabled' | translate}}</th>
  49. <th>{{:: 'hidden' | translate}}</th>
  50. <th>{{:: 'link-only-column' | translate}}</th>
  51. <th width="15%">{{:: 'gui-order' | translate}}</th>
  52. <th colspan="2">{{:: 'actions' | translate}}</th>
  53. </tr>
  54. </thead>
  55. <tbody>
  56. <tr ng-repeat="identityProvider in configuredProviders">
  57. <td>
  58. <a href="#/realms/{{realm.realm}}/identity-provider-settings/provider/{{identityProvider.providerId}}/{{identityProvider.alias}}">
  59. <span data-ng-show="identityProvider.displayName">{{identityProvider.displayName}}</span>
  60. <span data-ng-show="!identityProvider.displayName && identityProvider.provider.groupName == 'Social'">{{identityProvider.provider.name}}</span>
  61. <span data-ng-show="!identityProvider.displayName && identityProvider.provider.groupName != 'Social'">{{identityProvider.alias}}</span>
  62. </a>
  63. </td>
  64. <td>{{identityProvider.providerId}}</td>
  65. <td translate="{{identityProvider.enabled}}"></td>
  66. <td translate="{{identityProvider.config.hideOnLoginPage == 'true'}}"></td>
  67. <td translate="{{identityProvider.linkOnly}}"></td>
  68. <td>{{identityProvider.config.guiOrder}}</td>
  69. <td class="kc-action-cell" kc-open="/realms/{{realm.realm}}/identity-provider-settings/provider/{{identityProvider.providerId}}/{{identityProvider.alias}}">{{:: 'edit' | translate}}</td>
  70. <td class="kc-action-cell" data-ng-show="access.manageIdentityProviders" data-ng-click="removeIdentityProvider(identityProvider)">{{:: 'delete' | translate}}</td>
  71. </tr>
  72. </tbody>
  73. </table>
  74. </div>
  75. </fieldset>
  76. </form>
  77. </div>
  78. <kc-menu></kc-menu>