Interface DuoOIDCIntegration

  • All Superinterfaces:
    net.shibboleth.idp.authn.principal.PrincipalSupportingComponent
    All Known Implementing Classes:
    DefaultDuoOIDCIntegration

    public interface DuoOIDCIntegration
    extends net.shibboleth.idp.authn.principal.PrincipalSupportingComponent
    Interface to a particular Duo OIDC integration point. In part replaces OIDC metadata as that is not supported by Duo.
    • Method Detail

      • getAPIHost

        @Nonnull
        @NotEmpty
        String getAPIHost()
        Get the name of the API host to contact.
        Returns:
        name of API host
      • getClientId

        @Nonnull
        @NotEmpty
        String getClientId()
        Get the clientId key.
        Returns:
        the integration key
      • getSecretKey

        @Nonnull
        @NotEmpty
        String getSecretKey()
        Get the secret key.
        Returns:
        the secret key
      • getAllowedOrigins

        @Nonnull
        @NotLive
        @Unmodifiable
        Set<String> getAllowedOrigins()
        Get a list of origins that allowed to appear in computed redirect URIs.
        Returns:
        a set of allowed origins. Never null but could be empty.
      • setRedirectURIIfAbsent

        void setRedirectURIIfAbsent​(@Nonnull @NotEmpty
                                    String computedRedirectURI)

        Set the redirectURI from one in a thread-safe way.

        This is a sate changing operation, and should be thread-safe in its operation, as the integration will be shared amongst threads e.g. syncrhonize the method call.

        Parameters:
        computedRedirectURI - the runtime computed redirectURI.
      • getRedirectURI

        @Nullable
        String getRedirectURI()
        Get the runtime redirectURI to direct the client to after authorisation.
        Returns:
        the redirectURI
      • getRegisteredRedirectURI

        @Nullable
        String getRegisteredRedirectURI()
        Get the static pre-registered redirect_uri.
        Returns:
        the pre-registered redirect_uri.
      • isRedirectURIPreregistered

        @Nullable
        boolean isRedirectURIPreregistered()
        Has a redirectURI been pre-registered i.e. set in the properties file.
        Returns:
        true iff getRegisteredRedirectURI() is not null, false otherwise.
      • getHealthCheckEndpoint

        @Nonnull
        @NotEmpty
        String getHealthCheckEndpoint()
        Get the path of the health check endpoint.
        Returns:
        the path of the health check endpoint
      • getAuthorizeEndpoint

        @Nonnull
        @NotEmpty
        String getAuthorizeEndpoint()
        Get the path of the authorization endpoint.
        Returns:
        the path of the authorization endpoint
      • getTokenEndpoint

        @Nonnull
        @NotEmpty
        String getTokenEndpoint()
        Get the path of the token endpoint.
        Returns:
        the path of the token endpoint;